私は今、C++での仮想派生におけるあいまいさのさまざまな状況を学んでいます。しかし、コードにあいまいさのエラーがあり、その理由がわかりません...
これが私のコードです:
class V {
public:
int v ;
};
class A {
public:
int a ;
};
class B : public A, public virtual V {
};
class C : public A, public virtual V {
};
class D : public B, public C {
public:
void f() ;
};
void g() {
D d ;
B* pb = &d ; // No Problem
A* pa = &d ; // Error: 'A' is ambiguous base of 'D'
V* pv = &d ; // No Problem
}
なぜこのエラーが発生するのかわかりませんが、他の影響に関するエラーは発生しません。
ありがとうございました :-)