Mehrfachvererbung und Abtstrakte Basisklassen
-
Hallo zusammen.
Und zwar folgendes. Bei einer Mehrfachverebung bekomme ich einen Linkerfehler:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
class CBase1 { CBase1() { } virtual ~CBase1() =0; //... } class CBase2 { CBase2() { } virtual ~CBase2() =0; //... } class CDerived1 : public CBase1, public CBase2 { CDerived1() { } virtual ~CDerived1() { } //... }
Wieso erhalte ich den nun einen Linkerfehler. Kann ich nicht von 2 abstrakten Basisklassen ableiten?
-
Doch kannst Du (in C++).
Wenn der Linker sich beschwert, wird die Implementierung der Basisklassen wohl nicht kompiliert.
-
Die Implementierung der Basisklassendestruktoren fehlt.
-
Der Destruktor muss immer über einen Funktionskörper verfügen - auch wenn du ihn als pure virtual deklarierst. Siehe auch diesen Thread.
Falsches Forum btw.. das ist ein reines C++-Problem.