首页 > 其他 > 详细

带基虚类的构造函数执行顺序

时间:2015-03-22 17:50:00      阅读:217      评论:0      收藏:0      [点我收藏+]
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 class Base
 6 {
 7 public:
 8     Base(int i){cout <<i<< <<"Base"<<endl;}
 9     ~Base(){}
10 };
11 
12 class Base1: virtual public Base
13 {
14 public:
15     Base1(int i, int j=0):Base(j){cout<<i<< <<"Base1"<<endl;}
16     ~Base1(){}
17 };
18 
19 class Base2: virtual public Base
20 {
21 public:
22     Base2(int i,int j=0):Base(j){cout<<i<< <<"Base2"<<endl;}
23     ~Base2(){}
24 };
25 
26 class D:public Base2, public Base1
27 {
28 public:
29     D(int a, int b, int c, int d):mem1(a), mem2(b), Base1(c),Base2(d), Base(a){cout<<b<< <<"D"<<endl;}
30 private:
31     Base2 mem2;
32     Base1 mem1;
33 };
34 
35 int main()
36 {
37     D d(1,2,3,4);
38 
39     system("pause");
40     return 0;
41 }

输出结果为:

 

技术分享

 

带基虚类的构造函数执行顺序

原文:http://www.cnblogs.com/yyxayz/p/4357564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!