我现在正在学习 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
}
我不明白为什么我有这个错误但是我没有其他影响的错误。
谢谢 :-)