理清下面代码即可:
#include <iostream.h>
class B{
public:
B(int i) {
b=i;
cout << "B constructed" << endl;
}
int b;
};
class V: public B{
public:
V(int i, int j):B(i) {
v=j;
cout << "V constructed" << endl;
}
int v;
};
class X: virtual public V{
public:
X(int i, int j):V(i, j) {
x=j;
cout << "X constructed" << endl;
}
int x;
};
class Y: virtual public V{
public:
Y(int i, int j):V(i, j) {
y=j;
cout << "Y constructed" << endl;
}
int y;
};
class W : public X, public Y{
public:
W(int a, int b, int c, int d, int e, int f):X(a, b), Y(c, d), V(e, f){
w=a;
cout << "W constructed" << endl;
}
int w;
};
class Z : public W{
public:
Z(int a, int b, int c, int d, int e, int f, int g):W(b, c, d, e, f, g), V(f, g){
z=a;
cout << "Z constructed" << endl;
}
int z;
};
int main(){
Z obj(1, 2, 3, 4, 5, 6, 7);
cout<<obj.b<<endl;
cout<<obj.v<<endl;
cout<<obj.x<<endl;
cout<<obj.y<<endl;
cout<<obj.w<<endl;
cout<<obj.z<<endl;
return 0;
}