Grundkurs C++ IDE Klassenhierarchien
|
|
- Harald Flater
- vor 5 Jahren
- Abrufe
Transkript
1 Grundkurs C++ IDE Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
2 IDE - Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil des Qt SDK) Linuxprofis: Bitte installiert den Qt Creator aus der Paketverwaltung Windows und MacOS: Bei Problemen: Bitte nicht zögern, die Tutoren zu fragen! Ausführliche Dokumentation unter Folie 2/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
3 Namensbereiche (namespaces) Vermeidung von Mehrdeutigkeiten Klassen und Variablen werden zu logischen Paketen zusammengefasst Deklaration/Erweiterung an verschiedenen Stellen in mehreren Dateien möglich namespace mynamespace{ Einbinden eines Namenbereichs ist global, innerhalb eines Namensbereichs, innerhalb einer Funktion möglich using namespace mynamespace; Einbeziehen einzelner Bestandteile eines Namensbereichs mit Bereichszugriffsoperator möglich mynamespace::fkt1(); Einbinden eines einzelnen Elements: using namespace mynamespace::fkt1(); Folie 3/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
4 Implementierung einer einfachen Klasse Quadrat -m_laenge: double +setlaenge(laenge: double) +getlaenge(): double Folie 4/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
5 // Quadrat.h #ifndef QUADRAT_H #define QUADRAT_H class Quadrat { Quadrat(); // Konstruktor void setlaenge(double laenge); // Methode, // nur Deklaration double getlaenge() const; double m_laenge; // Attribut #endif Folie 5/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
6 // Quadrat.cpp #include "Quadrat.h" Quadrat::Quadrat() { // Implementierung der Funktion setlaenge void Quadrat::setLaenge (double laenge) { m_laenge = laenge; double Quadrat::getLaenge() const { return m_laenge; Folie 6/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
7 // main.cpp #include "Quadrat.h" int main () { Quadrat meinquadrat; // Quadratobjekt erstellen Quadrat* meinquadratzeiger; // Zeiger auf Quadratobjekt double laenge; meinquadratzeiger = &meinquadrat; // Zeigeradresse setzen meinquadrat.setlaenge(25.0); // Methode des Objekts aufrufen laenge = meinquadratzeiger->getlaenge(); // Methode über // Zeiger aufrufen return 0; Folie 7/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
8 Zugriffsregelung und Vererbung Quadrat -m_laenge: double Rechteck -m_breite: double +setlaenge(laenge: double) +getlaenge(): double +setbreite(breite: double) +getbreite(): double Folie 8/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
9 class Quadrat { void setlaenge(double laenge); // Methode, nur Deklaration double getlaenge () const { // Methode mit Definition return m_laenge; int m_laenge; // Attribut class Rechteck : public Quadrat { // Vererbung der Klasse Quadrat void setbreite(double breite); double getbreite () const { return m_breite; double m_breite; Folie 9/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
10 Zugriffsregelungen bei Ableitung: public AK : public BK { Basisklasse public protected private abgeleitete Klasse public protected private Zugriff kann nur über Methoden der Basisklasse erfolgen! Folie 10/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
11 Zugriffsregelungen bei Ableitung: protected AK : protected BK { Basisklasse public protected private abgeleitete Klasse protected protected private Zugriff kann nur über Methoden der Basisklasse erfolgen! Folie 11/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
12 Zugriffsregelungen bei Ableitung: private AK : private BK { AK : BK { Standard! Basisklasse public protected private abgeleitete Klasse private private private Zugriff kann nur über Methoden der Basisklasse erfolgen! Folie 12/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
13 new und delete // main.cpp #include "Quadrat.h" int main () { Quadrat meinquadrat; // Objekt auf Stack Quadrat* meinquadratdyn; // Zeiger auf Quadrat-Objekt meinquadratdyn = new Quadrat; // neues Objekt auf // dem Heap erstellen delete meinquadratdyn; // Quadrat-Objekt löschen, // Speicher freigeben Folie 13/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
14 Konstruktor, Destruktor und this-zeiger class A { A (int c = 1000, int d = 2000) { this->c = c; this->d = d; // Konstruktor ~A(); // Destruktor void getzustand(); int c, d; int main() { A neuesobjekt(); A neuesobjekct2(200, 300); Folie 14/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
15 Initialisierungslisten class A { A (int k = 1000, int l = 2000) : c(k), d(l) { void getzustand(); int c; int d; Folie 15/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
16 Konstruktor und Ableitung class A { A (int k=1, int l=2) : c(k), d(l) { std::cout << "A!" << '\n'; int c, d; class B : A { B (int m=3) : e(m) { std::cout << "B!" << '\n'; int e; int main() { B b; Folie 16/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
17 Konstruktor und Ableitung class A { A (int k=1, int l=2) : c(k), d(l) { std::cout << "A!" << '\n'; int c, d; class B : A { B (int m=3) : e(m) { std::cout << "B!" << '\n'; int e; int main() { B b; Ausgabe: A! B! Abgeleitete Klasse ruft Standardkonstruktor der Basisklasse auf! Folie 16/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
18 Aufrufreihenfolge von Konstruktoren Konstruktoren der Basisklassen(n) Konstruktoren der Elementobjekt-Klassen Konstruktoren der abgeleiteten Klasse Folie 17/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
19 Initialisierungslisten II class A { A (int k=1, int l=2) : c(k), d(l) { std::cout << "A!" << '\n'; int c, d; class B : A { B (int m=3, int n=6, int o=9) : A(n,o), e(m) { std::cout << "B!" << '\n'; int e; expliziter Aufruf des Konstruktors der Basisklasse Reihenfolge bleibt unverändert! Folie 18/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
20 Verdeckung class A { protected: int c, d; A() : c(1),d(2) { void getzustand(){ std::cout << "A: " << c << " " << d << "\n"; class B : A { int d; B(): d(3) { void getzustand(){ std::cout << "B: " << c << " " << d << "\n"; int main() { B b; b.getzustand();
21 Verdeckung class A { protected: int c, d; A() : c(1),d(2) { void getzustand(){ std::cout << "A: " << c << " " << d << "\n"; class B : A { int d; B(): d(3) { void getzustand(){ std::cout << "B: " << c << " " << d << "\n"; int main() { B b; b.getzustand(); Ausgabe: B: 1 3
22 Bereichszugriffsoperator class A { protected: int c, d; A() : c(1),d(2) { void getzustand(){ std::cout << "A: " << c << " " << d << "\n"; class B : A { int d; B(): d(3) { void getzustand(){ std::cout << "B: " << c << " " << A::d << "\n"; int main() { B b; b.getzustand(); Ausgabe: B: 1 2
23 Mehrfachvererbung class A { A(int x=1000, int y=2000): i(x), j(y) { cout << "A (constr.): i=" << i << ", j=" << j << "\n"; void getzustand() { cout << "A: i=" << i << ", j=" << j << "\n"; int i, j; class B : public A { B(int x=101, int y=102, int z=103): A(x, y), k(z) { cout << "B (constr.): "; getzustand(); int k; class C : public A { C(int x=201, int y=202, int z=203): A(x, y), l(z) { cout << "C (constr.): "; getzustand(); int l; class D : public B, public C { D(int x=301, int y=302, int z=303): B(x, y), C(x+10,y+10), m(z) { int m; int main() { D instanz; Attribute der Klasse A 2 in D, unveränderte Reihenfolge der Konstruktoraufrufe
24 Mehrfachvererbung class A { A(int x=1000, int y=2000): i(x), j(y) { cout << "A (constr.): i=" << i << ", j=" << j << "\n"; void getzustand() { cout << "A: i=" << i << ", j=" << j << "\n"; int i, j; class B : virtual public A { B(int x=101, int y=102, int z=103): A(x, y), k(z) { cout << "B (constr.): "; getzustand(); int k; class C : virtual public A { C(int x=201, int y=202, int z=203): A(x, y), l(z) { cout << "C (constr.): "; getzustand(); int l; Attribute der Klasse A nur noch einmal in D! class D : public B, public C { D(int x=301, int y=302, int z=303): B(x, y), C(x+10,y+10), m(z) { int m; int main() { D instanz;
25 Konstruktoraufrufe bei virtuellen geerbten Klassen Reihenfolge der Konstruktoraufrufe: Konstruktoren der virtuellen (geerbten) Basisklasse(n) Konstruktoren der nicht-virtuellen Basisklasse(n) Konstruktoren der Elementobjekt-Klassen Konstruktoren der abgeleiteten Klasse Der Konstruktor der am weitesten abgeleiteten Klasse übernimmt die Initialisierung des virtuell geerbten Teiles der Klasse. Die anderen Aufrufe des Basisklassenkonstruktors der virtuell geerbten Klasse werden ignoriert. Folie 23/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
26 Zeiger auf die Basisklasse class Auto { protected: int ps, zylinder; Auto(int lei, int toepf): ps(lei),zylinder(toepf) { void bremsen() { std::cout << "BREMSE..." << "\n"; class Cabrio: public Auto { int offen; Cabrio(int lei, int toepf): Auto(lei,toepf), offen(0) { void dachauf() { std::cout << "AUF!" << "\n"; offen = 1; void bremsen() { std::cout << "BREMSE Cabrio..." << "\n"; int main() { Auto *z4 = new Cabrio(215,6); z4->bremsen(); ((Cabrio*)z4)->bremsen(); ((Cabrio*)z4)->dachAuf();
27 Zeiger auf die Basisklasse class Auto { protected: int ps, zylinder; Auto(int lei, int toepf): ps(lei),zylinder(toepf) { void bremsen() { std::cout << "BREMSE..." << "\n"; class Cabrio: public Auto { int offen; Cabrio(int lei, int toepf): Auto(lei,toepf), offen(0) { void dachauf() { std::cout << "AUF!" << "\n"; offen = 1; void bremsen() { std::cout << "BREMSE Cabrio..." << "\n"; int main() { Auto *z4 = new Cabrio(215,6); z4->bremsen(); ((Cabrio*)z4)->bremsen(); ((Cabrio*)z4)->dachAuf(); Ausgabe: BREMSE... BREMSE Cabrio... AUF!
28 Zugriff durch Basisklassenzeiger int main() { Auto *parkpl[3] = { new Cabrio(215,6), new Lkw(600,16), new Jeep(400,12) Auto *auswahl = parkpl[i%3]; Jede Spezialisierung von Auto (Cabrio, Lkw, Jeep) habe eine eigene Methode bremsen() Ist der Zeiger vom Basistyp Auto, wird die Methode von Auto aufgerufen, nicht die der Spezialisierungen. Folie 25/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
29 Polymorphismus class Auto {... virtual void bremsen() { std::cout << "BREMSE..." << "\n"; class Cabrio : public Auto {... void bremsen() { std::cout << "BREMSE Cabrio..." << "\n"; class Lkw : public Auto {... void bremsen() { std::cout << "BREMSE LKW..." << "\n"; Zeigt der Zeiger auswahl vom Typ Auto* auf ein abgeleitetes Objekt, so bestimmt nun beim Aufruf auswahl->bremsen() der Typ des Objekts, welche Variante von bremsen() zum Einsatz kommt. Dies geschieht zur Laufzeit ( late binding ). Destruktoren sollten immer virtuell angelegt werden! Folie 26/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
30 Polymorphismus II abstrakte Klassen class Auto {... virtual void bremsen()=0; class Cabrio : public Auto {... void bremsen() { std::cout << "BREMSE Cabrio..." << "\n"; class Lkw : public Auto {... void bremsen() { std::cout << "BREMSE LKW..." << "\n"; Die Klasse Auto kann nicht instanziiert werden Abstrakte Klassen können nicht als Typ für Funktionsparameter oder Rückgabewerte verwendet werden Abgeleitete Klassen müssen die rein virtuellen Methoden neu definieren, um instanziiert werden zu können. Folie 27/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
31 Überladen von Funktionen int wurzel (int i); float wurzel (float f); double wurzel (double f); void main () { int ia, ib; float fa, fb; ia = wurzel (ib); fa = wurzel (fb); Funktionen müssen sich in Anzahl und/oder Typ der Parameter unterscheiden, d.h. sie müssen eine andere Signatur aufweisen. Unterscheidung in Rückgabewert oder in den Namen der Parameter reicht nicht aus. Folie 28/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
32 Überladen von Funktionen II Bei Vererbung beachten: gleichnamige Methode in der abgeleiteten Klasse verdeckt alle gleichnamigen Methoden in der Basisklasse, unabhängig von der Signatur impliziter Aufruf von Basisklassenkonstruktor nur möglich, wenn ein Standardkonstruktor (Aufruf ohne Parameter) existiert virtuelle Methoden: Virtualität nur dann, wenn die Methode in der Basisklasse und der abgeleiteten Klasse dieselbe Signatur hat; ansonsten einfache Verdeckung Folie 29/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
33 Überladen von Funktionen class Quadrat { Quadrat ( double laenge ); Quadrat ( const Quadrat &q ); double m_laenge; char *bezeichnung; Quadrat::Quadrat ( const Quadrat &q ) { m_laenge = q.m_laenge; // Kopieren des Dateinamens bezeichnung = new char[strlen(q.bezeichnung) +1]; strcpy ( bezeichnung, q.bezeichnung ); Folie 30/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
34 Überladen von Operatoren class MeinString { char *inhalt; int laenge; void operator= ( const MeinString &zweiterstring ); int operator< ( const MeinString &zweiterstring ) const;... void MeinString::operator= ( const MeinString &zweiterstring ) { laenge = zweiterstring.laenge; delete [] inhalt; inhalt = new char [ laenge+1 ]; strcpy ( inhalt, zweiterstring.inhalt ); Folie 31/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
35 Templates: Funktionstemplates template <class T> T max (T a1, T a2) { if (a1 < a2) return a2; else return a1; kann auf beliebigen Datentypen/Klassen arbeiten nur eine Implementierung notwendig mehrere Platzhalter sind möglich (getrennt durch Kommata) konkrete Variante für bestimmten Datentyp wird erst erstellt, wenn die Funktion damit verwendet wird Trennung von Definition und Deklaration von daher nicht möglich Folie 32/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
36 Templates: Funktionstemplates template <class T> T max (T a1, T a2) { if (a1 < a2) return a2; else return a1; kann auf beliebigen Datentypen/Klassen arbeiten nur eine Implementierung notwendig int main () { std::cout << max(3, 5); std::cout << max<int>(3, 5); mehrere Platzhalter sind möglich (getrennt durch Kommata) konkrete Variante für bestimmten Datentyp wird erst erstellt, wenn die Funktion damit verwendet wird Trennung von Definition und Deklaration von daher nicht möglich Folie 32/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
37 Templates: Klassentemplates #ifndef CPPKURSTEM_H #define CPPKURSTEM_H namespace cppkurs { template <class T> class tupleclass { T array[2]; void setvals(t a, T b); T show(); template <class T> void tupleclass<t>::setvals(t a, T b) { array[0] = a; array[1] = b; template <class T> T tupleclass<t>::show() { std::cout << array[0] << ", " << array[1] << std::endl; return array[0] + array[1]; #endif
38 Hausaufgabe heute Abend im Moodle-Kurs Abgabetermin: 15. Mai 2019, 20:00 Uhr Folie 34/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019
Grundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
Grundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil des Qt SDK) Download unter : http://qt.nokia.com/products/qt-sdk
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil des Qt SDK) Download unter : http://www.qt.io/download-open-source/
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil des Qt SDK) Download unter : http://qt.nokia.com/products/qt-sdk
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme Tim Habigt tim@tum.de Büro Z949 Julian Habigt jh@tum.de Büro Z941 Grundkurs C++ 2 Warum C++? Sprache Rechenzeit Memory
Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
Einführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen
3 VERERBUNG ALLGEMEINES
3 VERERBUNG ALLGEMEINES Leitideen: Die Hinzufügung von Daten- oder Funktionskomponenten zu einer vorhandenen Klasse (Basisklasse) wird als Vererbung und die auf diese Weise erzeugte Klasse als abgeleitete
4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
Polymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
C++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
HSR Rapperswil 2001 Markus Rigling. Programmieren: Templates Auflage
HSR Rapperswil 2001 Markus Rigling Programmieren: Templates 1 1. Auflage Inhaltsverzeichnis: Templates.1 1. Verwendung 3 2. Erstellen einer Templateklasse. 3 3. Faustregel zum Erstellen eines Klassentemplates..
Grundlagen der Informatik
Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3
Objektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
Einführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung
DAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
Abend 4 Übung : Erweitern von Klassen durch Vererbung
Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren
Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test
Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)
Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
Polymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Lambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen
Lambda-Funktionen Lambda-Funktionen sind Funktionen ohne Namen. definieren ihre Funktionalität an Ort und Stelle. können wie Daten kopiert werden. können ihren Aufrufkontext speichern. Lambda-Funktionen
C++ - Objektorientierte Programmierung Polymorphie
C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie
7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
C++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
Mikrorechentechnik II. Klassen in C++
Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void
C++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
Vorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
Programmierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen
3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
Vererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
Die abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,
Kompaktkurs C++ Vererbung (inheritance) 1 Oft besitzen verschiedene Datentypen einen gemeinsamen Kern: Kreis und Viereck sind geometrische Figuren; sie haben eine Kantenzahl, eine Fläche, einen Umfang
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
Programmierkurs C++ Konstruktor, Statische Methoden Namespaces
Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor
7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor Das Programmbeispiel aus dem letzten Abschnitt läßt sich bisher nicht zufriedenstellend zu Ende bringen. Unerklärliche Abstürze und Fehlverhalten
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
Programmierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ziele Sie wissen, was Vererbung
HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
Objektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH
A practical guide to C++
A practical guide to Janis Fehr fehr@informatik.uni-freiburg.de SommerCampus2004 Janis Fehr A practical guide to Kapitel 2 Start Kurstag 2: Agenda Wiederholung der Themen von Tag 1 Codeoptimierung Namespace
Einführung in C++ Vererbung und Polymorphismus
Einführung in C++ Vererbung und Polymorphismus Ablauf Grundlegende Eigenschaften der Vererbung in C++ Redefinition und Namensauflösung Eine einfache Klassenhierarchie in Java und C++ Redefinition von virtuellen
Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
Die verschiedenen Programmierparadigmen von C++ Software-Technik: Vom Programmierer zur erfolgreichen
Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik 5. Entwurf
Objektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
Informatik I (D-ITET)
Informatik I (D-ITET) PrüfungsVorbereitungsKurs, 1.7.2009 simonmayer@student.ethz.ch ETH Zürich Datenstrukturen Rekursion + Stuff Rekursion Rekursion Funktionen, die sich selbst aufrufen, sind rekursiv
Objektorientierte Programmierung mite**
mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++
Inhalte der Grundlagen
Inhalte der Grundlagen Programmieren mit Klassen Operatoren für Klassen Laufzeit- und Codeoptimierung Referenzen und Konstanten UGE - IPD Freunde und andere Typen Templates UGE - IPD UGE - IPD UGE - IPD
virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };
C++ für Anfänger des Programmierens Rieckeheer GSO-Hochschule Nürnberg März 2008 174 a neu Vor Kapitel 24 ist folgender Text einzufügen. Das folgende Programm variiert das Programm VIRTfunktion3.cpp und
Praxis der Programmierung
Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen
Einführung in das Objektorientierte Programmieren mit C++
BEREICH DATENTECHNIK I CP 700 00 TH 03 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 7 7. Laufzeit-Polymorphie 7.1. Frühes und spätes Binden 7.2. Virtuelle Funktionen FG TECHNISCHE
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Programmierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter
Bereits behandelt: Klassen, Konstruktoren, Destruktoren etc. Operatoren. Heute: Namensräume. Vererbung. Kompaktkurs C++ Themen F 1
Kompaktkurs C++ Themen F 1 Bereits behandelt: Klassen, Konstruktoren, Destruktoren etc. Operatoren Heute: Namensräume Vererbung Kompaktkurs C++ Namensräume F 2 Namensräume fassen Datentypen, Variablen
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
Grundkurs C++ Typwandlung Ausnahmebehandlung
Grundkurs C++ Typwandlung Ausnahmebehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018 Folie 1/25 GK C++: Typwandlung & Fehlerbehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
Programmieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
C++ Quellcodes zum Buch Kapitel 5
1 HARALD NAHRSTEDT C++ für Ingenieure Einführung in die objektorientierte Programmierung Erstell am 27.04.2009 C++ Quellcodes zum Buch Kapitel 5 Beschreibung Diese Seiten enthalten den Quellcode aus dem
Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
Visuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
Informatik 1 ( ) D-MAVT F2011. Klassen, Funktionen. Yves Brise Übungsstunde 9
Informatik 1 (251-0832-00) D-MAVT F2011 Klassen, Funktionen Nachbesprechung Blatt 7, Aufgabe 1 Wenn Funktion void als Rückgabetyp hat, dann ist return nicht notwendig. void swap3(int* a, int* b) { int
Übersicht. Bisherige Verwendung von Klassen Vererbung. Zeiger auf Objekte (abgeleiteter) Klassen Virtuelle Funktionen Konstruktoren/Destruktoren
C++ - Vererbung Übersicht Bisherige Verwendung von Klassen Vererbung Grundlagen Zugriffschutz Vererbte Funktionen Zeiger auf Objekte (abgeleiteter) Klassen Virtuelle Funktionen Konstruktoren/Destruktoren
Einführung in die Programmierung Wintersemester 2018/19
Einführung in die Programmierung Wintersemester 2018/19 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Inhalt Einführung in das konzept Attribute / Methoden
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Vorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
Prinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
Beispiel 1/3. Abstrakte Datentypen. Beispiel 3/3. Beispiel 2/3. Abstrakte Klasse SortierVerfahren
Beispiel 1/ Abstrakte Klasse SortierVerfahren Abstrakte Datentypen Die Methode sort von Sortierverfahren ist sinnlos bietet keinerlei Sortierung Objekte können in Wahrheit nicht sortieren Überhaupt sind
C++ kompakt - Teil 1. Danke an Matthias Biedermann Markus Geimer
C++ kompakt - Teil 1 Danke an Matthias Biedermann Markus Geimer Programmorganisation (1) Ein C++ Projekt kann auf mehrere Quelldateien verteilt werden. Dabei muss in genau einer Quelldatei die Funktion
Einführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
Vererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Prof. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming
Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Überblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer:
Programmierung III Marc Ruberg 1 Pointer für Fortgeschrittene Arrays von Pointern ( Zeigervektoren ): long *zahlenptr[25]; char *strptr[1000]; Pointer auf Pointer: char **sp Zeiger auf Funktionen: Typ
Programmierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts