From 15ef06a1a07757c8f7590784438b82a873fbdc02 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 1 Oct 2008 16:32:55 +0200 Subject: Initialer Import. --- contents/wissen/cpp-tutorial/10-klassen.php | 115 ++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 contents/wissen/cpp-tutorial/10-klassen.php (limited to 'contents/wissen/cpp-tutorial/10-klassen.php') diff --git a/contents/wissen/cpp-tutorial/10-klassen.php b/contents/wissen/cpp-tutorial/10-klassen.php new file mode 100644 index 0000000..96905c7 --- /dev/null +++ b/contents/wissen/cpp-tutorial/10-klassen.php @@ -0,0 +1,115 @@ + + + +
+

+ 10. Klassen +

+

+ +#include <iostream> +#include <string> + +class Person +{ + private: + std::string name; + int alter; + + public: + /* Dies sind sogenannte Kontruktoren, + * 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); +}; + +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; +} + + +

+ +

+ 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 also eine Klasse erstellen, die einen Eintrag einer Personen-Kartei darstellt. +

+

+ Der Name des neuen Typs steht hinter class, in diesem Fall Person. +

+

+ Unter private stehen Einträge, die nur innerhalb der Klasse verfügbar sind, unter public stehen solche, die auch von außen aus aufrufbar sind. Man kann in einer Klasse sowohl Variablen, als auch Funktionen, sogenannte Methoden, definieren +

+

+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. +

+
+ + -- cgit v1.2.3