"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