mit so allgemeinWie überprüft man, ob eine C++ Klasse eine andere erweitert (wie wenn die andere eine Schnittstelle wäre)?
class A { ... };
class B { ... };
class C: public A, public B {}; // C inherits from A and B.
, wenn wir eine Instanz von C erstellen und wollen es in eine Funktion zu übergeben ho können wir überprüfen, ob wir Klasse an eine Funktion ist A erstreckt?
Ich lief 'const C * c = dynamic_cast (& a) 'aber es gab mir' Fehler: kann nicht dynamic_cast '& a' (vom Typ 'Klasse A *') 'const Klasse C *' eingeben (Quellentyp ist nicht polymorph) ' –
Barney
@BarneyHsiao: Ich aktualisierte die Antwort zu erklären, warum Sie erhalten diesen Fehler. Kurz gesagt, die Basisklasse muss mindestens eine virtuelle Methode haben (es kann der Destruktor sein), wenn Sie 'dynamic_cast <>' darauf verwenden wollen. – ereOn