Ich habe diesen Code geschrieben, aber er kompiliert nicht und ich erhalte diesen Fehler in klang ++ v18.1.3: < /p>
Konstruktor für 'C' muss explizit initialisieren Die Basisklasse 'a', die keinen Standardkonstruktor < /p>
< /blockquote>
hat
Code: Select all
class A
{
public:
explicit A(int n)
{}
};
class B : virtual public A
{
public:
B(int n)
: A(n)
{}
};
class C : public B
{
public:
C(int n)
: B(n)
{}
};
Ich könnte den Konstruktor eines im Konstruktor von C aufrufen und es löst das Problem auf, aber ich habe keine Ahnung, warum dieses Problem passiert ist. Gibt es eine offizielle Möglichkeit, dieses Problem zu lösen?