继承和组合混搭情况下的构造和析构.cpp

来源:互联网 发布:mac ssh 知乎 编辑:程序博客网 时间:2024/06/05 16:30

继承与组合混搭情况下,构造和析构调用原则

         原则:先构造父类,再构造成员变量、最后构造自己

                先析构自己,在析构成员变量、最后析构父类



#include<iostream>using namespace std;//继承与组合混搭情况下,构造和析构调用原则 //原则:先构造父类,再构造成员变量、最后构造自己//先析构自己,在析构成员变量、最后析构父类class Object{public:Object(int a,int b){this->a = a;this->b = b;cout<<"object构造函数调用"<<"a: "<<a<<"b: "<<b<<endl;}~Object(){cout<<"object析构函数"<<endl;}protected:private:int a;int b;};class Parent:public Object{public:Parent(char *p):Object(1,2){this->p = p;cout<<p<<endl;cout<<"父类构造函数.."<<p<<endl;}~Parent(){cout<<"父类析造函数"<<p<<endl;}void printP(int a,int b){cout<<"我是爹"<<endl;}protected:char *p;private:};class Child :public Parent{public://变化的地方Child(char *p) : Parent(p),obj1(3,4),obj2(5,6)//这是对象初始化列表{this->myp = p;cout<<"子类构造函数"<<myp<<endl;}~Child(){cout<<"子类析造函数"<<myp<<endl;}void printC(){cout<<"我是儿子"<<endl;}protected:char *myp;Object obj1;Object obj2;private:};//搭建舞台void Test(){Child c1("继承测试");}int main(){Test();system("pause");return 0;}


0 0
原创粉丝点击