zoukankan      html  css  js  c++  java
  • 含有虚继承的多继承构造函数执行顺序

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Base1
     5 {
     6 public:
     7     Base1()
     8     {
     9         cout << "class Base1" << endl;
    10     }
    11 };
    12 
    13 class Base2 
    14 {
    15 public:
    16     Base2()
    17     {
    18         cout << "class Base2" << endl;
    19     }
    20 };
    21 
    22 class Level1:public Base2,virtual public Base1
    23 {
    24 public:
    25     Level1()
    26     {
    27         cout << "class Level1" << endl;
    28     }
    29 };
    30 
    31 class Level2:public Base2,virtual public Base1
    32 {
    33 public:
    34     Level2()
    35     {
    36         cout << "class Level2" << endl;
    37     }
    38 };
    39 
    40 class TopLevel:public Level1,virtual public Level2 
    41 {
    42 public:
    43     TopLevel()
    44     {
    45         cout << "class TopLevel" << endl;
    46     }
    47 };
    48 
    49 int main()
    50 {
    51     TopLevel obj;   
    52 }

    执行结果

    class Base1
    class Base2
    class Level2
    class Base2
    class Level1
    class TopLevel

    结论:
    虚基类的构造函数优先执行
  • 相关阅读:
    windows7触屏编程
    改变窗口大小,恢复以前的大小
    insert()
    index()
    help()
    id()
    extend()
    count()
    cmp()
    append()
  • 原文地址:https://www.cnblogs.com/yiruhua/p/5616953.html
Copyright © 2011-2022 走看看