Angenommen, ich habe einen Header, die diese beiden Klassen enthaltenCompiler kann keine Vererbung C++ kompilieren
class A:public class B{
// code
};
class B
{
protected:
A a_object;
};
, wenn der Compiler diese Datei enthalten kompiliert, wenn es um die Klasse A kommt, ist es Klasse A von B erbt sieht aber es doesn erreichen Sie nicht die Klasse B. Definition gibt einen Fehler. und wenn ich die Reihenfolge beider Klassen umkehre, gibt es einen Fehler aufgrund von a_object, da es die Definition der Klasse A nicht sieht.
So, wie um dieses Problem zu lösen? und nehme an, dass ich auf diese Include-Datei beschränkt bin, um Definitionen der Klasse A und B zu haben. Hier
Dank
Sie können diese Art von rekursiven Abhängigkeiten nicht ausführen. –
Denken Sie darüber nach. Die Größe eines 'A' wird die Größe des' a_object' beinhalten, das er von 'B' erbt, also ist' sizeof (A) 'unendlich. Offensichtlich wird das nicht funktionieren. – chris