我有类似下面代码的情况,但我收到错误C2512:没有合适的默认构造函数可用错误
class A
{
};
class AProxy :public A
{
A* ptr;
public:
AProxy(A* var):ptr(var){}
};
class B : public A
{
};
class BProxy : public virtual B, public virtual AProxy
{
B* ptr;
public :
BProxy(B* var):AProxy(var),ptr(var){}
};
class C : public B
{
};
class CProxy : public virtual BProxy, public virtual C
{
C* ptr;
public :
CProxy(C* var):BProxy(var),ptr(var){}
};
我不知道为什么会出现这样的错误。 请帮帮我
答案 0 :(得分:1)
请检查此问题Link。
您的问题在于virtual
继承。您需要在AProxy
构造函数的初始化列表中调用CProxy
构造函数:
public :
CProxy(C* var):BProxy(var), AProxy(var),ptr(var){}