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.


Log in to reply