"undefined reference to myclass::myclass[not-in-charge]()"



  • Sorry, wenn das hier trivial sein sollte, aber ich habe erst vor kurzem
    begonnen mich mit c++ zu beschäftigen. Vorher hab ich etwas Erfahrung mit
    Pascal und Delphi gesammlt. Nun bin ich dabei ein paar Programme unter Linux
    zu schreiben und dort mit gcc 3.2 zu compilieren. All diese Programme tun
    nicht wirklich etwas... sie sollen nur mein Verständnis für das
    Klassenkonzept und die Sprache im Allgemeinen festigen.
    Ich habe eben ein Programm geschrieben, das diverse Daten eines Prismas
    berechnet. Man soll am Anfang zwischen speziellen Arten von prismen wählen
    können... zur Zeit nur Quader und Würfel (... nein das ist kein Witz, es
    geht ja wie gesagt nicht um ein sinnvoll verwendbares Programm)
    Ich bediene mich dazu dreier Klassen:
    Prism - die allgemeine Daten wie Höhe und Volumen enthählt, und die
    Berechnungsfunktionen... allerdings tun die nichts.
    Cube & Rect - diese erben alle Methoden und Spezifikationen eines Prism und
    sie überladen die in Prism noch leeren Funktionen für Oberflächen- und
    Grundflächenberechnung.
    Dann gibt es noch die Klasse Eingabe, die nur dazu da ist ein Menü
    darzustellen, das den User aus den einzelnen Körpern auswählen lässt.
    Bei kompilieren mit gcc 3.2 geht eigentlich alles gut nur kommt dann ein
    ganzer Bildschirm mit Fehlermeldungen der Art, wie ich sie in den Betreff
    geschrieben habe... und das für jede Klasse.
    kurzer Ausschnitt:

    /tmp/cci0ckgV.o: In function 'Rect::Rect[not-in-charge]():
    /tmp/cci0ckgV.o(.text+0x44): undefined reference to
    'Prism::Prism[not-in-charge]()'
    ....

    Kann mir da jemand weiterhelfen... ich hab schon gegoogelt, die
    Fehlermeldung auch gefunden. Die Hilfen konnte ich aber nicht auf mein
    Programm anwenden. Ich kann auch gerne noch einmal den gesamten Quelltext
    posten... sind ca 200 Zeilen.

    Vielen Dank für jede Hilfe schon einmal im Vorraus!

    MfG, Alex



  • auch wenn dein konstruktor Prism nichts tu, braucht er einen körper, mach einen leeren körper dahinter.
    {}

    der linker sucht eine implementierung, wenn diese meldung kommt.



  • Hey vielen Dank,

    das war der entscheidene Hinweis. Ich hatte lediglich vergessen Prism:Prism() auch zu definieren. Peinlich, peinlich... aber aus Fehlern lernt man ja bekanntlich.

    MfG, Alex


Anmelden zum Antworten