다음 클래스에서는 클래스 B와 클래스 C에 상속 된 클래스 A가 있습니다. 클래스 D는 B와 C에서 상속받습니다. 또한 D의 생성자는 B, C 및 A의 생성자를 호출합니다 B와 C가 A를 가상으로 상속 할 때 A 세대의 생성자를 직접 호출 할 수 없으므로 (3 세대를 통해 동일한 호출을해야하기 때문에).C++ 다중 상속 생성자
제가 B 클래스의 객체를 만들고 싶다면 A가 사실상 상속되기 때문에 어쨌든 A의 생성자 (v1과 v2를 전달하기 위해 초기화에 사용될 변수)를 호출 할 수 있습니까?
class A {
int a1,a2;
A() {
}
A(int v1,v2) {
a1 = v1;
a2 = v2;
}
};
class B:virtual public A {
int b1,b2;
B() {
}
B(int v1,v2) {
b1 = v1;
b2 = v2;
}
};
class C:virtual public A {
int c1,c2;
C() {
}
C(int v1,v2) {
c1 = v1;
c2 = v2;
}
};
class D:public B,public C {
int d1,d2;
D() {
}
D(int v1,v2):B(v1,v2),C(v1,v2),A(v1,v2)
{
d1 = v1;
d2 = v2;
}
};