C++ (不)带参数的公有继承

来源:互联网 发布:霓虹灯制作软件 编辑:程序博客网 时间:2024/06/07 20:03

01.C++ 不带参数的公有继承

#include<iostream>using namespace std;class CFather{public:    CFather()    {        cout << " CFather " << endl;    }    ~CFather()    {        cout << " ~CFather " << endl;    }};class CSon :public CFather{public:    CSon()    {        cout << " CSon " << endl;    }    ~CSon()    {        cout << " ~CSon " << endl;    }};int main(){    //CSon son;     //执行顺序: 先到父类构造,在到子类构造。    {                    //局部变量(栈区)生命周期结束之后,调用析构函数;        CSon son;   //执行顺序: 先到父类构造,子类构造,子类析构,父类析构;                    //先构造的,后析构    }    system("pause");    return 0;}

不执行析构运行结果:
这里写图片描述
执行析构运行结果:
这里写图片描述

02。带参数的公有继承

#include<iostream>using namespace std;class CFather{public:    CFather(int a)    {        cout << " CFather " << endl;    }    ~CFather()    {        cout << " ~CFather " << endl;    }};//class CSon :public CFather//{//public://  CSon():CFather(2)//  {//      cout << " CSon " << endl;//  }//  ~CSon()//  {//      cout << " ~CSon " << endl;//  }////};//=======带参数的公有继承,可以类似于一个类包含另一个类的对象,通过初始化列表赋值====//class CSon {public:    CFather father;public:    CSon():father(2)    {        cout << " CSon " << endl;    }    ~CSon()    {        cout << " ~CSon " << endl;    }};//===带参数的公有继承,可以类似于一个类包含另一个类的对象,通过初始化列表赋值======//int main(){    //CSon son;     //执行顺序: 先到父类构造,在到子类构造。    {                    //局部变量(栈区)生命周期结束之后,调用析构函数;        CSon son;   //执行顺序: 先到父类构造,子类构造,子类析构,父类析构;                    //先构造的,后析构    }    system("pause");    return 0;}
1 0
原创粉丝点击