虚基类及其派生构造函数与析构函数u

来源:互联网 发布:淘宝商城的推广 编辑:程序博客网 时间:2024/06/01 10:02

构造一个类的对象的一般顺序是:

(1):如果有直接或间接的虚基类,先执行虚基类的构造函数

(2):如果尤其它基类,则按照他们在继承声明列表中的出现次序,分别执行他们的构造函数,但构造过程中,不再执行虚基类的构造函数。

#include<iostream>using namespace std;class base0{public:base0(int var):var0(var){cout<<"ggggg"<<endl;};int var0;void fun0(){cout<<"memory of base0"<<endl;}~base0(){cout<<"gggg"<<endl;}};class base1:virtual public base0{public:  base1(int var):base0(var){cout<<"hhhhh"<<endl;}  int var1;  ~base1(){cout<<"HHHH"<<endl;}};class base2:virtual public base0{public:  base2(int var):base0(var){cout<<"tttttt"<<endl;}  int var2;};class mm:public base1,public base2{public: mm(int var):base1(var),base0(var),base2(var){cout<<"ppppp"<<endl;} int var; void fun(){cout<<"member of mm"<<endl;} ~mm(){cout<<"ppppp"<<endl;}};int main(){mm a(1);a.var=2;a.fun();return 0;}


原创粉丝点击