class2.h =========================================================================================================== #include #ifndef _CLASS2_H_ #define _CLASS2_H_ using namespace std; class Mensch { public: enum Geschlecht {MANN,FRAU}; private: char name[30]; unsigned int alter; bool geschlecht; void test_geschlecht(void); public: // Konstruktoren Mensch(const char*, unsigned int, bool); Mensch(const char*, unsigned int); Mensch(const char*); Mensch(); // Destruktor ~Mensch(); // Klassen Funktionen 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); // Zugriffsmethoden const char* get_name(void); unsigned int get_alter(void); bool get_geschlecht(void); void set_name(const char* n); void set_alter(unsigned int a); void set_geschlecht(bool g); }; #endif class2.h ENDE ================================================================================================== class2.c ======================================================================================================= #include #include #include "class2.h" using namespace std; // Definition der Konstruktoren Mensch::Mensch(const char* n, unsigned int a, bool g) { strncpy(name, n , sizeof(name)-1); name[sizeof(name)]='\0'; alter = a; geschlecht = g; } Mensch::Mensch(const char* n, unsigned int a) { strncpy(name, n, sizeof(name)-1); name[sizeof(name)]='\0'; alter=a; if(a%2) // Gerade? { geschlecht = FRAU; } else { geschlecht = MANN; } } Mensch::Mensch(const char* n) { strncpy(name, n, sizeof(name)-1); name[sizeof(name)]='\0'; // Vor kurzem geboren alter = 0; geschlecht = FRAU; } Mensch::Mensch() { strncpy(name, "Unbekannt", sizeof(name)-1); name[sizeof(name)]='\0'; // Vor kurzem geboren alter = 0; geschlecht = MANN; } Mensch::~Mensch() { cout << name << " ist von uns gegangen\n"; } 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 << ")"; if(alter <= 3) { cout << " -> Neugeborenes\n"; } else if(alter <= 10) { cout << " -> Kind\n"; } else if(alter <= 17) { cout << " -> Teenie\n"; } else if(alter <= 24) { cout << " -> junger Erwachsener\n"; } else if(alter >= 25) { cout << " -> Erwachsener\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'; } const char* Mensch::get_name(void) { return name; } unsigned int Mensch::get_alter(void) { return alter; } bool Mensch::get_geschlecht(void) { return geschlecht; } void Mensch::set_name(const char* n) { strncpy(name, n, sizeof(name)-1); name[sizeof(name)]='\0'; } void Mensch::set_alter(unsigned int a) { alter = a; } void Mensch::set_geschlecht(bool g) { geschlecht = g; } class2.cpp ENDE ================================================================================================ class2main.cpp ================================================================================================= #include "class2.h" using namespace std; int main(void) { Mensch person1("Adam",18,Mensch::MANN); Mensch person2; person1.print(); person2.print(); person1.set_alter(20); person2.set_name("Eva"); person2.set_alter(19); person2.set_geschlecht(Mensch::FRAU); person1.print(); person2.print(); return 0; } class2main.cpp ENDE ============================================================================================