Page 1 of 1

Der Konstruktor für 'C' muss die Basisklasse 'A' explizit initialisieren, die keinen Standardkonstruktor [Duplikat] aufw

Posted: 02 Feb 2025, 08:00
by Anonymous
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?