Seminar Einfhrung in CC Einfhrung in die Programmiersprache
- Slides: 27
Seminar: "Einführung in C/C++" Einführung in die Programmiersprache C/C++ “Mittwoch” Andreas Döring doering@inf. fu-berlin. de SS 2004
Seminar: "Einführung in C/C++" 2 Organisatorisches: Es werden keine benoteten Scheine ausgegeben. Wer einen unbenoteten Schein haben will, muss Donnerstag Nachmittag an den praktischen Übungen teilnehmen und dort eine Aufgabe am Rechner lösen und vorführen. (Gruppenarbeit erlaubt). Der unbenotete Schein wird 2 credits (ETCS) ausweisen. In wie weit der Schein in den Studiengängen der Teilnehmer als Studienleistung angerechnet werden kann, entscheiden die einzelnen Prüfungsämter.
Seminar: "Einführung in C/C++" 3 Zur Einstimmung: Überladung Verschiedene Funktionen mit gleichem Namen: int max(int a, int b) { if (a > b) return a; return b; } int max(int a, int b, int c) { return max(a, b), c ); }
Seminar: "Einführung in C/C++" 4 Überladung: Regeln Die überladenen Funktionen müssen sich (paarweise) voneinander unterscheiden: Durch die Zahl ihrer Argumente oder Durch den Typ des i-ten Arguments
Seminar: "Einführung in C/C++" 5 Default Argumente Funktionsargumente können Defaults bekommen: int print_person (char * name, int alter = 18, char * initialen = "N. N. ") { std: : cout << name << "(" << alter << ")" << initialen; } print_person ( "Cindy", 20); Ausgabe: Cindy(20)N. N.
Seminar: "Einführung in C/C++" 6 Klassen sind Typen, die gewisse Member zusammenfassen. Member können Variablen oder Funktionen sein. Objekte sind Variablen vom Typ einer Klasse. Bsp. : struct Hamster { int Alter; char Name[256]; void fuettern(); };
Seminar: "Einführung in C/C++" 7 Deklaration einer Klassen werden wie folgt deklariert: struct NAME; Oder: class NAME;
Seminar: "Einführung in C/C++" 8 Definition einer Klasse Bei der Definition einer Klasse müssen alle Member deklariert werden: struct Hamster { int Alter; char Name[256]; void fuettern(); }; Member-Variablen: Schreibe wie Definition. Member-Funktionen: Schreibe wie Deklaration.
Seminar: "Einführung in C/C++" 9 Member-Funktionen definieren Member-Funktionen müssen definiert werden. 1. Möglichkeit: Innerhalb der Klassendefinition struct Hamster { void fuettern() { //jetzt bekommt der Hamster Futter! } };
Seminar: "Einführung in C/C++" 10 Member-Funktionen definieren 2. Möglichkeit: Außerhalb der Klassendefinition struct Hamster { void fuettern(); }; void Hamster: : fuettern() { //jetzt bekommt der Hamster Futter! }
Seminar: "Einführung in C/C++" 11 Klassen programmieren Typisches Vorgehen: In eine. h-Datei: Klassendefinition In eine. cpp-Datei: Definition der Member. Funktionen. Anmerkung: Bei Klassen ist die Definition in einer Headerdatei erlaubt.
Seminar: "Einführung in C/C++" 12 Objekte erzeugen Objekte erzeugt man wie andere Variablen auch: struct Hamster { int Alter; char Name[256]; void fuettern(); }; Hamster billy; Preisfrage: Wie deklariert man ein Objekt?
Seminar: "Einführung in C/C++" 13 Objekte benutzen Auf die Member eines Objektes kann man mit dem member-selection-Operator. zugreifen: struct Hamster { int Alter; char Name[256]; void fuettern(); }; Hamster billy; billy. Alter = 4; billy. fuettern();
Seminar: "Einführung in C/C++" 14 Objektpointer benutzen Hat man einen Pointer auf ein Objekt, so kann man auch den Pfeiloperator -> benutzen. Hamster billy; Hamster * mein_hamster = & billy; mein_hamster->fuettern(); ist das gleiche wie: (*mein_hamster). fuettern();
Seminar: "Einführung in C/C++" 15 Objektpointer als Member Eine Klasse C kann Member vom Typ C * enthalten. Bsp. : struct Hamster { Hamster * Sohn; Hamster * Mutter; }; Hamster nina; Hamster billy; billy. Mutter = & nina; billy. Mutter->Sohn = & billy;
Seminar: "Einführung in C/C++" 16 Member-Funktion ruft Member Von einer Member-Funktion aus kann man direkt auf die Member des Objekts zugreifen: struct Hamster { bool ist_satt; void fuettern(); }; void Hamster: : fuettern() { ist_satt = true; }
Seminar: "Einführung in C/C++" 17 public und private schützt Member vor Zugriff „von außen“: struct Hamster { private: bool ist_satt; public: void fuettern() { ist_satt = true; } }; Hamster billy; billy. ist_satt = true; //Fehler!
Seminar: "Einführung in C/C++" 18 Vererbung Klassen können die Member anderer Klasse „erben“: struct Tier { int gewicht; void fuettern() { ++gewicht; } }; struct Goldfisch: Tier { int wert; }; Goldfisch billy; billy. gewicht = 100; billy. fuettern();
Seminar: "Einführung in C/C++" 19 Multiple Vererbung Eine Klasse kann auch mehrere Basisklassen haben: struct Fahrzeug { int Geschwindigkeit; }; struct Wertgegenstand { int Wert; }; struct Golf: Fahrzeug, Wertgegenstand { }; Golf mein. Auto; mein. Auto. Geschwindigkeit = 180; mein. Auto. Wert = 18000;
Seminar: "Einführung in C/C++" 20 Member überladen Die Member-Definitionen in der abgeleiteten Klasse überladen die der Basisklassen: struct Auto { void tanken() { std: : cout << "Benzin"; } }; struct Solarmobil: Auto { void tanken() { std: : cout << "Sonne"; } };
Seminar: "Einführung in C/C++" 21 Auswahl bei Überladung. . . Solarmobil mob; mob. tanken(); //Ausgabe "Sonne" Zugriff auf die Basisklassen-Funktion: mob. Auto: : tanken(); //Ausgabe "Benzin" Alternative: Auto * aut = & mob; aut->tanken(); //Ausgabe "Benzin"
Seminar: "Einführung in C/C++" 22 Private Basisklassen Die Member von privaten Basisklassen sind nur den Member-Funktionen der abgeleiteten Klasse zugänglich: struct Geldboerse { int Betrag; }; struct Panzerschrank: private Geldboerse { void ausrauben() { Betrag = 0; } }; Panzerschrank p; p. Betrag = 10; //Fehler!
Seminar: "Einführung in C/C++" 23 Konstruktoren Spezielle Member-Funktionen, die automatisch bei der Erzeugung eines Objektes aufgerufen werden: struct Hamster { Hamster() { int Alter; }; Alter = 0; } Konstruktoren geben keinen Typen zurück (nicht einmal void).
Seminar: "Einführung in C/C++" 24 Überladene Member-Funktionen Memberfunktionen können überladen werden: struct Hamster { void fuettern(int X) { Gewicht += X; } void fuettern() { ++Gewicht; } int Gewicht; };
Seminar: "Einführung in C/C++" 25 Überladene Konstruktoren sind oft überladen: struct Hamster { Hamster () { Gewicht = 0; } Hamster (int X) { Gewicht = X; } int Gewicht; }; Hamster billy(20); std: : cout << billy. Gewicht; //20
Seminar: "Einführung in C/C++" 26 Destruktoren werden aufgerufen, wenn das Objekt zerstört wird. struct Hamster { Hamster (char * name = "Billy") { Name = name; std: : cout << "Hamster geboren! : -)n"; } ~Hamster () { std: : cout << "Hamster stirbt! : -(n"; } char * Name; };
Seminar: "Einführung in C/C++" 27 (Fortsetzung) void hamsterleben() { Hamster billy; std: : cout << "Es lebe der Hamster!n"; std: : cout << "Er heißt" << billy. Name << ". n"; } Starte: hamsterleben() Ausgabe: Hamster geboren! : -) Es lebe der Hamster! Es heißt Billy. Hamster stirbt! : -(
- Programmiersprache hewlett
- Einfachste programmiersprache
- Tuba karaçorlu
- Programmiersprache go lernen
- Mier en die sprinkaan
- Ek glo in god die vader
- Rosen die ich an dich verschenke
- Jys die stem in die stilte wat agterbly
- Kort medium en langtermyn doelwitte
- Pad van waarheid en lewe
- Pad van waarheid tot die lewe
- Druppel emmer overlopen
- South park college know it all hippies
- Wat is voegwoorde
- Lydende en bedrywende vorm oefeninge graad 6
- Die kinder verbringen die ferien
- Die vorhaut ist die haut spruch
- Die einde van die koue oorlog 1989
- 2folie
- Je höher die berge desto schöner die gams
- Seun van magol 1 kon 4
- Basic bible seminar module
- Youth ministry topics
- Socratic seminar meaning
- Joy luck club double face
- Cqm 3 seminar
- Basic bible seminar module
- Zoom facilitation tips