Der Konstruktor für 'C' muss die Basisklasse 'A' explizit initialisieren, die keinen Standardkonstruktor [Duplikat] aufw
Posted: 02 Feb 2025, 08:00
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
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?
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)
{}
};