Veröffentlicht 15. Juli 200916 j 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
15. Juli 200916 j 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 );
15. Juli 200916 j 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.
15. Juli 200916 j 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 );
15. Juli 200916 j Vielen Vielen Dank für die schnellen Antworten :) Ich werds gleich mal ausprobieren
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.