主页 > 创业  > 

C++作业5

C++作业5

完成沙发床的多继承(有指针成员)

代码:

#include <iostream> using namespace std; class Bed { private: double *money; public: Bed(){cout << "Bed::无参构造函数" << endl;} Bed(double money):money(new double(money)) { cout << "Bed::有参构造函数" << endl; } Bed(const Bed &other):money(new double(*(other.money))) { cout << "Bed::拷贝构造函数" << endl; } Bed &operator=(const Bed &other) { if(this != &other){ money = new double(*(other.money)); } cout << "Bed::拷贝赋值函数" << endl; return *this; } ~Bed() { delete(money); money = nullptr; cout << "Bed::析构函数" << endl; } void show() { cout << "money=" << *money << endl; } }; class Sofa { private: double *leight; public: Sofa(){cout << "Sofa::无参构造函数" << endl;} Sofa(double leight):leight(new double(leight)) { cout << "Sofa::有参构造函数" << endl; } Sofa(const Sofa &other):leight(new double(*(other.leight))) { cout << "Sofa::拷贝构造函数" << endl; } Sofa &operator=(const Sofa &other) { if(this != &other){ leight = new double(*(other.leight)); } cout << "Sofa::拷贝赋值函数" << endl; return *this; } ~Sofa() { delete(leight); leight = nullptr; cout << "Sofa::析构函数" << endl; } void show() { cout << "leight=" << *leight << endl; } }; class BedSofa:public Bed,public Sofa { private: double *height; public: BedSofa(){cout << "BedSofa::无参构造函数" << endl;} BedSofa(double money,double leight,double height):Bed(money),Sofa(leight),height(new double(height)) { cout << "BedSofa::有参构造函数" << endl; } BedSofa(const BedSofa &other):Bed(other),Sofa(other),height(new double(*(other.height))) { cout << "BedSofa::拷贝构造函数" << endl; } BedSofa &operator=(const BedSofa &other) { if(this != &other){ height = new double(*(other.height)); Bed::operator=(other); Sofa::operator=(other); } cout << "BedSofa::拷贝赋值函数" << endl; return *this; } ~BedSofa() { delete(height); height = nullptr; cout << "BedSofa::析构函数" << endl; } void show() { cout << "height=" << *height << endl; } }; int main() { BedSofa s1(120,4,0.5); s1.Bed::show(); s1.Sofa::show(); s1.show(); return 0; }

运行结果:

思维导图:

标签:

C++作业5由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C++作业5