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

    xiaoxiao2021-03-25  131

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

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

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

    #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; }

    转载请注明原文地址: https://ju.6miu.com/read-8477.html

    最新回复(0)