summaryrefslogtreecommitdiffstats
path: root/grundelemente/10_Klassen
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-16 17:01:28 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-16 17:01:28 +0200
commitd0668d3cd77ad617c83f6c2f124d84417285766b (patch)
tree9fad24568d43505120df46a297e0b352d836acc0 /grundelemente/10_Klassen
downloadc++-tutorial-master.tar
c++-tutorial-master.zip
Initialer ImportHEADmaster
Diffstat (limited to 'grundelemente/10_Klassen')
-rw-r--r--grundelemente/10_Klassen/10_Klassen.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/grundelemente/10_Klassen/10_Klassen.cpp b/grundelemente/10_Klassen/10_Klassen.cpp
new file mode 100644
index 0000000..6aba0f1
--- /dev/null
+++ b/grundelemente/10_Klassen/10_Klassen.cpp
@@ -0,0 +1,84 @@
+#include <iostream>
+#include <string>
+
+
+/* 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;
+}