#include #include 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* geraeusch); void riechen(const char* geruch); void schmecken(const char* geschmack); void tasten(const char* objekt); void erzeuge(const char* n="Unbekannt", unsigned int a = 0, bool g = FRAU ); void print(void); }; int main(void) { static Mensch mann, frau, person, dummy; static Mensch* Menschptr; mann.erzeuge("Adam", 18, Mensch::MANN); frau.erzeuge("Eva", 18, Mensch::FRAU); mann.sehen("Eva"); frau.sehen("Apfel"); frau.tasten("Apfel"); mann.hoeren("Warnung von Gott"); frau.hoeren("nichts"); frau.riechen("Apfel"); frau.schmecken("Apfel"); mann.hoeren("Schlange"); person.erzeuge(); Menschptr=&dummy; Menschptr->erzeuge("Juergen Wolf", 30, Mensch::MANN); cout << "\nMeine erzeugten Menschen bisher: \n"; mann.print(); frau.print(); person.print(); Menschptr->print(); return 0; } void Mensch::erzeuge(const char* n, unsigned int a, bool g) { strncpy(name, n, sizeof(name)-1); name[sizeof(name)]='\0'; alter = a; geschlecht = g; } void Mensch::print(void) { cout << name << " " << alter << " Jahre ("; test_geschlecht(); cout << ")\n"; } void Mensch::test_geschlecht(void) { if(geschlecht == FRAU) { cout << "weiblich"; } else if(geschlecht == MANN) { cout << "maennlich"; } } void Mensch::sehen(const char* objekt) { cout << name << " sieht " << objekt << '\n'; } void Mensch::hoeren(const char* geraeusch) { cout << name << " hoert " << geraeusch << '\n'; } void Mensch::riechen(const char* geruch) { cout << name << " riecht " << geruch << '\n'; } void Mensch::schmecken(const char* geschmack) { cout << name << " schmeckt " << geschmack << '\n'; } void Mensch::tasten(const char* objekt) { cout << name << " nimmt " << objekt << '\n'; }