//HW_CH04_45
/*
设类X分别派生出类Y和类Z,类Y和类Z又共同派生出类W,请用虚基类方式定义这些类。
要求为类简单添加一些成员,并编写main()函数进行验证。
*/
#include<iostream>
using namespace std;
class X {
public:
int x;
X(int a) {
x = a;
cout << "X constructor:" << a << endl;
}
};
class Y :virtual public X{
public:
int y;
Y(int a, int b) :X(a) {
y = b;
cout << "Y constructor:" << y << endl;
}
};
class Z :virtual public X {
public:
int z;
Z(int a, int c) :X(a) {
z = c;
cout << "Z constructor:" << z << endl;
}
};
class W :public Y, public Z {
public:
int w;
W(int a, int b, int c, int d) :Y(a, b), Z(a, c), X(a) {
w = d;
cout << "W constructor:" << w << endl;
}
};
int main() {
W* pw = new W(1, 2, 3, 4);
delete pw;
return 0;
}
设类X分别派生出类Y和类Z,类Y和类Z又共同派生出类W,请用虚基类方式定义这些类。要求为类简单添加一些成员,并编写main()函数进行验证。
最新推荐文章于 2024-06-15 18:06:06 发布