首页 > 代码库 > C++多重继承构造函数调用顺序
C++多重继承构造函数调用顺序
//以典型实例说明
1 class B1{}; 2 class V1:public B1(); 3 class D1:virtual public V1(); 4 class B2{}; 5 class B3{}; 6 class V2:public B1,publicB2{}; 7 class D2:virtual public V2,public B3{}; 8 class M1{}; 9 class M2{};10 class X:public D1,public D211 {12 M1 m1_;13 M2 m2_;14 };
构造函数调用顺序:
1.首先,构造虚基类子对象;
构造V1: B1::B1() V1::V1()
构造V2: B1::B1() B2::B2() V2::V2()
2.其次,构造非虚基类子对象;
构造D1: D1::D1()
构造D2: B3::B3() D2::D2()
3.再次,构造所有成员: M1::M1() M2::M2()
4.最后,构造X本身X::X()
C++多重继承构造函数调用顺序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。