Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
|
|
- Mareke Sauer
- vor 5 Jahren
- Abrufe
Transkript
1 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
2 Was bisher geschah Klassen I Attribute und Methoden Konstruktoren und Destruktor Zugriffskontrolle Klassendesign Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
3 Wie es heute weiter geht Klassen II 1 Initialisierungsliste in Konstruktoren 2 Statische Elemente 3 Zugriffskontrolle: protected 4 Vererbung 5 Polymorphie Virtuelle Methoden Abstrakte Basisklassen Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
4 Initialisierungslisten für Attribute im Konstruktor Beispiel: Konstruktor der Vektor-Klasse: Vektor :: Vektor ( size_t l) // hier wird das Attribut std :: vector < double > Vek // per Default - Konstruktor erzeugt { // noch ist Vek ein leerer Vektor this -> ReDim (l); } besser: statt leerem Vektor Vek direkt Vektor der Länge l mit entsprechendem vector-konstruktor erzeugen Initialisierungsliste Vektor :: Vektor ( size_t l) : Vek ( l) // Init. liste {} Reihenfolge der Initialisierungsliste = Reihenfolge der Attribute in der Klasse! Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
5 Impl. Typecast durch expliziten Konstruktor verhindern Konstruktoren mit einem Argument werden auch zur impliziten Typumwandlung benutzt. Beispiel: Bruch-Konstruktor Bruch( int z, int n=1); Bruch b (4,3); // b = 4/3 Bruch c= 2* b; // impl. Cast : 2 -> Bruch // dann operator * fuer Bruch * Bruch Wenn das nicht gewollt ist, explicit benutzen! Beispiel: Vektor-Konstruktor explicit Vektor(size_t l); Vektor x (7); // 7- elementiger Vektor x= x +3; // Compiler - Fehler dank explizitem Konstr. Verhalten ohne explicit: x= x +3; // impl. Cast : 3 -> Vektor // dann operator + fuer Vektor + Vektor Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
6 Statische Elemente Statische Elemente ex. 1 pro Klasse, unabhängig vom einzelnen Objekt Initialisierung statischer Attribute außerhalb des Konstruktor Statische Methoden dürfen nur auf statische Attribute zugreifen class Counter { // Diese Klasse zaehlt alle ihre Objekte private : static int Anzahl ; public : Counter () { ++ Anzahl ; } Counter ( const Counter &) { ++ Anzahl ; } ~ Counter () { -- Anzahl ; } }; static int Wieviele () { return Anzahl ; } int Counter :: Anzahl = 0; // Init. bei Programmstart Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
7 Statische Elemente (2) Counter a; cout << a. Wieviele () << endl ; // 1 { Counter b, c; cout << b. Wieviele () << endl ; // 3 } cout << Counter :: Wieviele (); // Aufruf ohne Objekt // 1 Weil statische Methoden keinem bestimmten Objekt zugeordnet sind, können sie auch ohne Objekt aufgerufen werden: Counter::Wieviele(); enthalten sie keinen this-zeiger dürfen sie nicht auf nicht-statische Elemente zugreifen können sie nicht mit const qualifiziert werden Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
8 Zugriffskontrolle: protected class Form2D { private : int farbe ; protected : double hoehe, breite ; public : Form2D ( double h =0, double b =0); // Konstruktor void setzegroesse ( double h, double b) { hoehe = h; breite = b; } }; protected markiert geschützten Bereich der Klasse weitere Stufe zwischen private und public: Zugriff public protected private eigene Methoden + Friends abgeleitete Methoden alle anderen Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
9 Vererbung class Rechteck : public Form2D { public : double Flaeche () const { return hoehe * breite ; } }; class Dreieck : public Form2D { double winkel ; public : double Flaeche () const { return hoehe * breite /2; } }; Klassen Rechteck und Dreieck sind von Klasse Form2D abgeleitet und erweitern diese. Form2D ist gemeinsame Basisklasse. abgeleitete Klassen erben Methoden und Attribute der Basisklasse, z.b. Dreieck hat Methoden setzegroesse, Flaeche und Attribute winkel, breite, hoehe (sowie farbe ohne Zugriff). Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
10 Vererbung (2) Form2D f( 1, 2); Rechteck r; // Rechteck r( 1, 2); nicht erlaubt, // Konstruktor nicht geerbt Dreieck d; f. setzegroesse ( 3, 4); r. setzegroesse ( 3, 4); d. setzegroesse ( 3, 4); cout << r. Flaeche () << endl ; // 12 cout << d. Flaeche () << endl ; // 6 Form2D * fzeiger = & d; fzeiger - > setzegroesse ( 4, 4); cout << d. Flaeche () << endl ; // 8 Konstruktoren, Destruktor, Zuweisungsoperator und Friends werden nicht vererbt Dreieck ist eine Form2D: abgeleitete Klasse kann aus Sicht der Basisklasse angesprochen werden Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
11 Vererbung ist-ein vs. hat-ein Vererbung bildet Ist-ein-Relation ab: Ein Dreieck ist eine Form2D weitere Vererbungen denkbar: z.b. Quadrat ist ein Rechteck, Kugel ist eine Form3D class Quadrat : public Rechteck {...}; class Kugel : public Form3D {...}; kennen schon: ifstream ist ein istream Form Form2D Rechteck Quadrat Form3D Dreieck Aber: SudokuSolver ist kein Sudoku, sondern hat ein Sudoku Hat-ein-Relation durch Attribut ausdrücken SudokuSolver besitzt ein Sudoku-Objekt als Attribut Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
12 Vererbung und Konstruktoren Konstruktoren in abgeleiteten Klassen erzeugen nur eigene Attribute, geerbte Attribute werden durch Basisklasse erzeugt! Reihenfolge: erst Basisklassen-Attribute, dann die eigenen Attribute Dreieck :: Dreieck ( double b, double h, double w) : Form2D ( b, h), winkel ( w) {} oder ohne Initialisierungsliste: Dreieck :: Dreieck ( double b, double h, double w) { // Basisklassen - Atrribute wurden per // Default - Konstruktor Form2D () erzeugt winkel = w; breite = b; hoehe = h; } Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
13 Vererbung und implizite Elemente Konstruktoren, Destruktor, Zuweisungsoperator werden nicht vererbt implizit definiert, falls nichts anderes angegeben Destruktoren in abgeleiteten Klassen kümmern sich um eigene Attribute, danach wird automatisch Destruktor der Basisklasse gerufen Dreieck ::~ Dreieck () { cout << " Dreieck wird zerstoert... " << endl ; } // hier wird automatisch ~ Form () aufgerufen impliziter Kopierkonstruktor ruft Kopierkonstruktor der Basisklasse auf, anschließend werden Kopien der eigenen Attribute erzeugt impliziter Zuweisungsoperator ruft Zuweisungsoperator der Basisklasse auf, anschliesend werden eigene Attribute zugewiesen Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
14 Vererbung Zugriffsklassen fast immer public-vererbung: Zugriffsklassen der geerbten Elemente bleiben erhalten z.b. Dreieck::setzeGroesse Dreieck::hoehe Dreieck::breite // farbe ohne Zugriff in Dreieck selten: protected-vererbung: alle geerbten public-elemente werden protected public protected protected class Rechteck : protected Form2D { public : double Flaeche () const { return hoehe * breite ; } }; Rechteck::setzeGroesse ist protected selten: private-vererbung: alle geerbten public- und protected-elemente werden private Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
15 class Dreieck : public Form2D { double winkel ; public : double Flaeche () const { return hoehe * breite /2; } }; Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22 Beispiel Vererbung class Form2D { private : int farbe ; protected : double hoehe, breite ; public : Form2D ( double h =0, double b =0); // Konstruktor void setzegroesse ( double h, double b); double Flaeche () const { return -1; } }; class Rechteck : public Form2D { public : double Flaeche () const { return hoehe * breite ; } };
16 Beispiel Vererbung (2) Form2D f( 1, 2); Rechteck r; // Rechteck r( 1, 2); nicht erlaubt, // Konstruktor nicht geerbt Dreieck d; r. setzegroesse ( 3, 4); d. setzegroesse ( 3, 4); cout << r. Flaeche () << endl ; // 12 cout << d. Flaeche () << endl ; // 6 Form2D * fzeiger = & d; fzeiger - > setzegroesse ( 4, 4); cout << d. Flaeche () << endl ; // 8 cout << fzeiger - > Flaeche () << endl ; // -1 Dreieck ist eine Form2D: abgeleitete Klasse kann aus Sicht der Basisklasse angesprochen werden Schön wäre, wenn fzeiger->flaeche() Fläche des Dreiecks liefern würde möglich mit virtuellen Methoden Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
17 Virtuelle Methoden und Polymorphie class Form2D {... public :... virtual double Flaeche () const { return -1; } }; Virtuelle Methoden ermöglichen Zugriff auf abgeleitete Methoden via Basisklasse Polymorphie: Basisklasse kann verschiedene Gestalten annehmen, verhält sich wie abgeleitete Klassen Klassen mit virtuellen Methoden heißen polymorph Form2D * fzeig = &f, * rzeig = &r, * dzeig = &d; cout << fzeig - > Flaeche () << endl ; // -1 cout << rzeig - > Flaeche () << endl ; // 12 dank Polymorphie cout << dzeig - > Flaeche () << endl ; // 8 dank Polymorphie Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
18 Polymorphie und virtueller Destruktor Normaler Destruktor führt zu Problemen: Form2D * zeig = new Dreieck ; // Dreieck - Konstruktor... // -> Form2D - Konstruktor delete zeig ; // nur Form2D - Destruktor!!! Polymorphie benötigt i.d.r. virtuellen Destruktor der Basisklasse: virtual ~Form2D(); delete bewirkt Aufruf des Dreieck-Destruktors im obigen Beispiel Besonders wichtig bei dynamischer Speicherverwaltung, sonst Speicherlecks Best Practice: polymorphe Klassen immer mit virtuellem Destruktor Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
19 Späte Bindung und vtables normale Methoden: Aufruf bekannt zur Compile-Zeit, frühe Bindung virtuelle Methoden: Aufruf erst zur Laufzeit bekannt, späte Bindung Wie funktioniert das? Polymorphe Klasse speichert intern Zeiger vptr auf Tabelle vtable mit Funktionszeigern vtable wird durch Konstruktor der abgeleiteten Klasse automatisch richtig initialisiert Aufruf virtueller Methoden indirekt über vptr statt direkt, daher etwas teurer passiert automatisch im Hintergrund Objekte Dreieck d Form2D vptr Rechteck r Form2D vptr vtable &Dreieck::Flaeche &Dreieck::~Dreieck &Rechteck::Flaeche &Rechteck::~Rechteck elix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
20 Abstrakte Basisklassen Rein virtuelle Methoden (pure virtual) gekennzeichnet durch = 0 class Form2D {... public :... virtual double Flaeche () const = 0; }; Klassen mit rein virtuellen Methoden heißen abstrakt können keine Objekte bilden einziger Zweck: Schnittstellen-Definition Abgeleitete Klassen müssen rein virtuelle Methoden überschreiben (Implementierung der Schnittstelle), um Objekte bilden zu können // Form2D f; // nicht erlaubt, da abstrakte Basisklasse Rechteck r; // Rechteck nicht abstrakt, // da Methode Flaeche () ueberschrieben wird Form2D * zeig = &r; // ok Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
21 Abstrakte Basisklassen Beispiel 1 class Form2D { // als abstrakte Klasse 2 protected : 3 double hoehe, breite ; 4 public : 5 Form2D ( double h, double b) { setztegroesse ( h, b); } 6 void setzegroesse ( double h, double b); 7 virtual double Flaeche () const = 0; // rein virtuell 8 virtual string Name () const { return " Form2D "; } 9 virtual ~ Form2D () {} // best practice 10 }; class Dreieck : public Form2D { // nicht abstrakt 13 public : 14 Dreieck ( double h, double b) : Form2D ( h, b) {} 15 double Flaeche () const { return hoehe * breite /2; } 16 string Name () const { return " Dreieck "; } 17 }; class Rechteck : public Form2D { // nicht abstrakt 20 public : 21 Rechteck ( double h, double b) : Form2D ( h, b) {} 22 double Flaeche () const { return hoehe * breite ; } 23 string Name () const { return " Rechteck "; } 24 }; class Quadrat : public Rechteck { // nicht abstrakt 27 public : 28 Quadrat ( double b) : Rechteck ( b, b) {} 29 string Name () const { return " Quadrat "; } 30 }; Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
22 Abstrakte Basisklassen Beispiel (2) void Info ( const Form2D & f) { // funktioniert dank Polymorphie cout << f. Name () << " hat Flaeche " << f. Flaeche () << endl ; } int main () { Dreieck d( 2, 3); Rechteck r( 2, 3); Quadrat q( 4); } Info ( d); // Dreieck hat Flaeche 3 Info ( r); // Rechteck hat Flaeche 6 Info ( q); // Quadrat hat Flaeche 16 return 0; Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil Juni / 22
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
MehrMapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.
Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrC++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17
C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen
MehrC++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14
C++ Teil 10 Sven Groß IGPM, RWTH Aachen 17. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 10 17. Dez 2014 1 / 14 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente
MehrEinfü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
MehrHSR 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
MehrEinfü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
MehrEinstieg 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
MehrOOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.
Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.
MehrC++ - 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
MehrVererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
MehrEinstieg 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
MehrGrundlagen 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,
MehrDAP2-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
MehrC++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15
C++ Teil 6 Sven Groß 23. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 23. Nov 2015 1 / 15 Themen der letzten Vorlesung const-deklaration Referenzen Zeiger Felder Sven Groß (IGPM, RWTH Aachen) C++
Mehr3 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
MehrVererbung. 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
MehrVererbung, 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
MehrÜ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
MehrThema 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:
MehrThema 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:
MehrMapra: C++ Teil 4. Felix Gruber, Michael Rom. 24. Mai 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 4 24.
Mapra: C++ Teil 4 Felix Gruber, Michael Rom IGPM 24. Mai 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 4 24. Mai 2016 1 / 25 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrMikrorechentechnik 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
MehrGrundlagen 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
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrPraxis 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
MehrProgrammierpraktikum 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
MehrVererbung. Definition Felder Konstruktor Methoden Beispiel. Dr. Beatrice Amrhein
Vererbung Definition Felder Konstruktor Methoden Beispiel Dr. Beatrice Amrhein Definition 2 Definition: Vererbung Die Vererbung dient dazu, mit Hilfe von existierenden Klassen neue Klassen zu implementieren.
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrC++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
MehrC++ 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
MehrC++ - 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
Mehr7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung
7.1 7 Vererbung Eine von der Basisklasse B abgeleitete Klasse A erbt alle Attribute und Methoden von B. Ein Objekt der Klasse A besitzt ein Slice der Klasse B und ein Slice der Klasse A. Jeder Konstruktor
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrÜ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
MehrObjektorientierte 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++
MehrC++ - 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
MehrC++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
Mehrvirtual 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
MehrC++ - 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.
MehrC++ 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
MehrAbend 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
MehrDie 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
Mehr11 Vererbung und Klassenhierarchie
11 Vererbung und Klassenhierarchie Bestandteile objektorientierter Programmierung: Bestehende Klassen können durch Spezialisierung und Erweiterung weiterentwickelt werden, ohne den Programmcode der alten
MehrGrundkurs 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
MehrPolymorphismus 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
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrGrundkurs 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
MehrProgrammieren in C++ Vererbung
Programmieren in C++ Vererbung Inhalt Vererbung Konstruktoren und Destruktor von abgeleiteten Klassen Typkonvertierung von Zeigern Identifikation der Klasse eines Objekts Überladen von Methoden Verdecken
MehrDie 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
MehrVererbung 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
MehrGrundkurs C++ IDE Klassenhierarchien
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 IDE - Integrated Development Environment
MehrC++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13
C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)
MehrPolymorphismus 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
Mehr7.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
MehrObjektorientierte 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
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrVererbung 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.
MehrAngewandte 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.)
MehrOOP 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
MehrEinfü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,
MehrÜ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
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public
MehrC++ Teil 7. Sven Groß. 26. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 18
C++ Teil 7 Sven Groß IGPM, RWTH Aachen 26. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 26. Nov 2014 1 / 18 Themen der letzten Vorlesung Referenzen Zeiger Felder dynamische Speicherverwaltung Sven
MehrC++ Teil 5. Sven Groß. 8. Mai IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 8. Mai 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai 2015 1 / 16 Themen der letzten Vorlesung Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung
MehrPraxisorientierte Einführung in C++ Lektion: "Virtuelle Methoden"
Praxisorientierte Einführung in C++ Lektion: "Virtuelle Methoden" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ April 24, 2014
Mehr1 KLASSENKOMPONENTEN. Leitideen: Klassen sind aus Datenkomponenten und Komponentenfunktionen
1 KLASSENKOMPONENTEN Leitideen: Klassen sind aus Datenkomponenten und Komponentenfunktionen zusammengesetzt. Die Komponentenfunktionen haben über eine Zeigervariable direkten Zugriff auf das Objekt. Die
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage
HSR Rapperswil 2001 Markus Rigling Programmieren: Smart Pointer 1 1. Auflage Inhaltsverzeichnis: 1. Smart Pointer3 2. Vor- Nachteile von Smart Pointer..3 3. auto_ptr..3 4. Umsetzung / Anwendung:.4 5. Wertzuweisung
MehrProgrammieren in C++ Klassen
Programmieren in C++ Klassen Inhalt Klassen (vertieft) Destruktor Konstruktoren Move-Semantik und Rechtswert-Referenzen (C++11) C++11 Features Prof. Dr. C. Stamm Programmieren in C++, FS 13 4-2 Implementierung
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrJava Grundlagen 2 - OOP
Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein
MehrKonstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
Mehr3D 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
MehrVorlesungsprü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,
MehrInformatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 24. September 2012 Agenda 1 Funktionen Aufbau und Anwendung Call by Value Call by Reference Überladen von Funktionen Default
Mehr4. 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
MehrC++ Klassen weitere Funktionen
C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrVererbung Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
MehrMapra: C++ Teil 6. Felix Gruber, Michael Rom. 07. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07.
Mapra: C++ Teil 6 Felix Gruber, Michael Rom IGPM 07. Juni 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07. Juni 2016 1 / 14 Themen vom letzten Mal Klassen Vererbung Zeiger auf Objekte Initialisierungsliste
MehrVererbung. Florian Adamsky, B. Sc. (PhD cand.) Softwareentwicklung im WS 2014/15.
1/23 Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 Formen der C++ Syntax 3/23 Inhaltsverzeichnis 1 2 Formen
MehrPolymorphie. Überschreiben. Definition Eigene Methoden überschreiben Beispiele. Dr. Beatrice Amrhein
Polymorphie Überschreiben Definition Eigene Methoden überschreiben Beispiele Dr. Beatrice Amrhein Definition 2 Vererbung Durch das Vererben von Klassen erhält die abgeleitete Klasse alle (für sie sichtbaren)
MehrEinfü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
MehrProgrammierung 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
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee{ //... void print() const{ //... cout
MehrProgrammieren 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
MehrAbend 7 Vererbung und Polymorphie, Abstrakte Klassen
Abend 7 Vererbung und Polymorphie, Abstrakte Klassen Ziel, Inhalt Wir sehen heute weitere Beispiele für Polymorphie und virtuelle Methoden. Wir lernen auch Klassen kennen, von denen man keine Objekte erzeugen
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrRü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
MehrVererbung. Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
MehrProgrammierung 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
MehrObjektorientiertes 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
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrLambda-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
Mehr19. Vererbung und Polymorphie
667 19. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6
MehrKapitel 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
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrVorlesung 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
Mehr