#include #include /* Im letzten Teil haben wir std::string kennengelernt. Dieser Typ ist eine sogenannte Klasse. In diesem Teil lernen * wir nun, wie wir selbst solche Typen definieren. */ // Wir wollen nun eine Klasse erstellen, die einen Eintrag einer Personen-Kartei darstellt // Person ist der Name des Typs class Person { // Hier stehen Einträge, die nur innerhalb der Klasse verfügbar sind private: // Man kann in einer Klasse sowohl Variablen, als auch Funktionen, sogenannte Methoden, definieren std::string name; int alter; // Dies sind Einträge, die von außen aufrufbar sind public: /* Dies sind sogenannte Konstruktoren, sie haben keinen Rückgabewert und den gleichen Namen wie die Klasse; * sie werden beim erstellen einer neuen Variable vom Typ der Klasse benutzt */ Person(); Person(std::string n, int a); void printName(); void setName(std::string n); void printAlter(); void setAlter(int a); }; /* Außerhalb der Klasse werden die Methoden dann mit Inhalt gefüllt; mit :: beschreibt man, zu welcher Klasse * die Methoden gehören. Die Variablen der Klasse können dabei genauso benutzt werden wie die Variablen der Funktion */ Person::Person() { name = "Unbekannt"; // -1 bedeutet bei uns jetzt, dass wir das Alter nicht wissen alter = -1; } Person::Person(std::string n, int a) { name = n; alter = a; } void Person::printName() { std::cout << "Der Name ist: " << name << std::endl; } void Person::setName(std::string n) { name = n; } void Person::printAlter() { if(alter < 0) std::cout << "Das Alter ist unbekannt." << std::endl; else std::cout << "Das Alter ist: " << alter << std::endl; } void Person::setAlter(int a) { alter = a; } int main() { // Hier wird der Konstruktor Person() benutzt Person p; // Hier wird der Konstruktor Person(std::string n, int a) benutzt Person p2("Hans", 20); p.printName(); p.printAlter(); p2.printName(); p2.printAlter(); p.setName(std::string("Horst")); p.setAlter(19); p.printName(); p.printAlter(); return 0; }