• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
demps_c
博客园    首页    新随笔    联系   管理    订阅  订阅
虚继承

 

26 class a{
27 public:
28 a(){cout << "a" << endl;}
29 ~a(){cout << "~a" << endl;}
30 };

 

45 class x:virtual public a{
46 public:
47 x(){cout<<"x" << endl;}
48 ~x(){cout<<"~x" << endl;}
49 };
50 class y:virtual public a{
51 public:
52 y(){cout<<"y" << endl;}
53 ~y(){cout<<"~y" << endl;}
54 };
55 class z:public x,public y{
56 public:
57 z(){cout <<"z" << endl;}
58 ~z(){cout <<"~z" << endl;}
59 };

 

结果就是

a
x
y
z
~z
~y
~x
~a

(注意构造函数以及析构函数的调用位置)

 

如果

45 class x: public a{
46 public:
47 x(){cout<<"x" << endl;}
48 ~x(){cout<<"~x" << endl;}
49 };
50 class y:public a{
51 public:
52 y(){cout<<"y" << endl;}
53 ~y(){cout<<"~y" << endl;}
54 };
55 class z:public x,public y{
56 public:
57 z(){cout <<"z" << endl;}
58 ~z(){cout <<"~z" << endl;}
59 };

 

结果就是

a
x
a
y
z
~z
~y
~a
~x
~a

posted on 2013-10-16 16:33  demps_c  阅读(118)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3