首页 > 代码库 > 多继承的构造顺序
多继承的构造顺序
构造函数按一下顺序被调用:
1.按虚拟基类被继承的顺序
2.按非虚拟基类被继承的顺序
3.按成员函数被声明的顺序
4.类自己的构造函数
#include<stdio.h>#include<iostream>#include<assert.h>using namespace std;class OBJ1{public: OBJ1(){ cout<<"OBJ1"<<endl; }};class OBJ2{public: OBJ2(){ cout<<"OBJ2"<<endl; }};class Base1{public: Base1(){ cout<<"Base1"<<endl; }};class Base2:public Base1{public: Base2(){ cout<<"Base2"<<endl; }};class Base3{public: Base3(){ cout<<"Base3"<<endl; }};class Base4:public Base3,public Base1{public: Base4(){ cout<<"Base4"<<endl; }};class Test:public Base1,public virtual Base2,public virtual Base3,public Base4{public: Test():Base4(),Base3(),Base2(),Base1(),obj2(),obj1() { cout<<"Test"<<endl; }private: OBJ2 obj2; OBJ1 obj1;};int main(){ Test t;}
多继承的构造顺序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。