MightyDucks Geschrieben 15. Juli 2009 Teilen Geschrieben 15. Juli 2009 Hallo zusammen, ich fange grad mit der OOP in C++ an und bekomme gleich die ersten Fehlermeldungen :( Mein QuellCode: ************************************************ #include <iostream> using namespace std; class Mensch { public: enum GEschlecht { MANN, FRAU }; private: char name[30]; unsigned int alter; bool geschlecht; void test_geschlecht( void ); public: void sehen( const char* objekt ); void hoeren( const char* gerausch ); void riechen( const char* geruch ); void schmecken( const char* geschmack ); void tasten( const char* objekt ); void erzeuge( const char* n= "Unbenannt", unsigned int a = 0, bool g = FRAU ); void print( void ); }; int main (void){ Mensch mann, frau, person, dummy; Mensch* Menschptr; mann.erzeuge( "Adam", 18, Mensch::MANN); frau.erzeuge( "Eva" , 18, Mensch::FRAU); } *********** ENDE ********************************* FEHLERMELDUNG: undefined reference to Mensch::erzeuge(char const*, usigned int, bool) Ich hoffe mir kann jemand weiter helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 15. Juli 2009 Teilen Geschrieben 15. Juli 2009 Hi, die Signatur deiner Funktion ist nicht richtig. Nimm das const mal raus: void erzeuge( [B]const [/B]char* n= "Unbenannt", unsigned int a = 0, bool g = FRAU ); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 15. Juli 2009 Teilen Geschrieben 15. Juli 2009 FEHLERMELDUNG: undefined reference to Mensch::erzeuge(char const*, usigned int, bool) Das bedeutet einfach, dass du diese Methode nicht definiert hast. Vermutlich hast du bei der Definition einfach das Mensch:: vergessen. Du solltest dich übrigens entscheiden, ob du bool oder den enum Mensch::GEschlecht benutzt. Dieser Mischmasch ist nicht so toll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 15. Juli 2009 Teilen Geschrieben 15. Juli 2009 Hi, ist das const aber nicht auch an der falschen Stelle? Es müsste doch eher heissen: void erzeuge(char [B]const [/B]* n= "Unbenannt", unsigned int a = 0, bool g = FRAU ); void print( void ); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 15. Juli 2009 Teilen Geschrieben 15. Juli 2009 char const * und const char * ist dasselbe. Etwas anderes wäre char * const. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyDucks Geschrieben 15. Juli 2009 Autor Teilen Geschrieben 15. Juli 2009 Vielen Vielen Dank für die schnellen Antworten :) Ich werds gleich mal ausprobieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.