undefined reference to `vtable for ClassA`



  • Hallo NG,

    ich habe folgende Linker Fehlermeldung, die ich nicht verstehe, weil eigentlich alles definiert ist.

    ClassA.cpp:1: undefined reference to `vtable for ClassA`

    Das ganze sieht so aus:

    class ClassA : public ClassB{
    public:
      ClassA();
      virtual ~ClassA();
    
      virtual int machDies();
      virtual int machJenes();
    };
    
    class ClassB : public ClassC{
      ClassB();
      virtual ~ClassB();
    
      virtual int machDies() = 0;
      virtual int machJenes() = 0; // Ist ab hier neu
    };
    
    class ClassC{
      ClassC();
      virtual ~ClassC();
    
      virtual int machDies();
      // machJenes fehlt ganz bewußt und wurde nicht vergessen
    };
    

    Ich hab mir alles doppelt und dreifach angesehen. Es fehlt kein include, keine Methode, keine Eigenschaft. Das ClassA.o File ist an der richtigen Stelle, ...

    Der Compileaufruf funktioniert, sonst gäb es ja das ClassA.o File nicht.

    Gruß, M. Incani



  • Dir ist bewusst, dass die Rückgabetypen der Funktionen fehlen? Ansonsten lässt sich aus dem Code so nichts sagen. Wo sind die Implementierungen der Methoden von 'ClassA'?



  • Konrad Rudolph schrieb:

    Dir ist bewusst, dass die Rückgabetypen der Funktionen fehlen? Ansonsten lässt sich aus dem Code so nichts sagen. Wo sind die Implementierungen der Methoden von 'ClassA'?

    ...speziell die der Destruktoren?



  • Uups - moment 🙂

    Konrad Rudolph schrieb:

    Dir ist bewusst, dass die Rückgabetypen der Funktionen fehlen? Ansonsten lässt sich aus dem Code so nichts sagen. Wo sind die Implementierungen der Methoden von 'ClassA'?


  • Mod

    Ich nehme an, die Klassendefinition stehen tatsächlich in umgekehrter Reihenfolge da. Dann kann man diesem Code allein noch nichts entnehmen. Jedenfalls ist es unwahrscheinlich, dass diese Definitionen allein zu einem Fehler führen.



  • Oh, die Destruktor Implementierung hat gefehlt. Danke für die schnelle Hilfe, manchmal sehen vier Augen mehr als zwei.
    🙂

    Ich hab mir das echt 1000 mal angesehen, aber den Wald vor lauter Bäumen nicht erkannt.

    Gruß,
    M. Incani

    LordJaxom_lg schrieb:

    Konrad Rudolph schrieb:

    Dir ist bewusst, dass die Rückgabetypen der Funktionen fehlen? Ansonsten lässt sich aus dem Code so nichts sagen. Wo sind die Implementierungen der Methoden von 'ClassA'?

    ...speziell die der Destruktoren?


Log in to reply