-1

I have a situation like below code, but I am getting error C2512: no appropriate default constructor available error

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){}
};

I am not getting why this is giving such error. Please help me out

Jarod42
  • 203,559
  • 14
  • 181
  • 302
aga
  • 359
  • 2
  • 4
  • 15

1 Answers1

1

Please check this question Link.

Your problem is in virtual inheritance. You need to call AProxy constructor in your initialization list of CProxy constructor:

public :
CProxy(C* var):BProxy(var), AProxy(var),ptr(var){}
Community
  • 1
  • 1
Elvis Oric
  • 1,289
  • 8
  • 22