1. 程式人生 > >C++例項---虛基類的建構函式和初始化

C++例項---虛基類的建構函式和初始化

執行環境:macOS shell
程式碼:

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

class base
{
protected:
    int x;
public:
    base(int x1)
    {
        x = x1;
        cout<<"constructing base, x = "<<x<<endl;
    }
};

class base1 :  virtual
public base { int y; public: base1(int x1, int y1):base(x1) { y = y1; cout<<"constructing base1, y = "<<y<<endl; } }; class base2 : virtual public base { int z; public: base2(int x1, int z1):base(x1) { z = z1; cout<<"constructing base2, z = "
<<z<<endl; } }; class derived:public base1, public base2 { int xyz; public: derived(int x1, int y1, int z1, int xyz1):base(x1),base1(x1,y1),base2(x1,z1) { xyz = xyz1; cout<<"constructing derived, xyz = "<<xyz<<endl; } }; int main () { derived obj(1
,2,3,4); return 0; }

執行結果:
這裡寫圖片描述