Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
|
|
|
- Lieselotte Gehrig
- vor 8 Jahren
- Abrufe
Transkript
1 Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige der Hochschule ist entweder Mitarbeiter oder jeder Mitarbeiter ist entweder oder ein Mitarbeiter 12/1 man braucht also Objekte vom Typ bzw. Mitarbeiter gar nicht 12/2 Einleitende Bemerkungen man braucht also Objekte vom Typ bzw. Mitarbeiter gar nicht Mitarbeiter Warum nimmt man diese Klassen trotzdem in die Hierarchie auf? int pnummer_; Mitarbeiter void display_gehalt( ); // virtuell ; string name_; string vorname_; ; // virtuell int mnummer_; ( string n, string v, int m ); ; legt das Minimum an Eigenschaften und Fähigkeiten fest, die jedes Objekt vom Typ einer abgeleiteten Klasse haben muß (/* in Java: so genannte Interfaces */) für eine sinnvolle Verwaltung von Objekten wichtig 12/3 double gehalt_; ( string n, string v, int m, double g ); void display_gehalt( ); double szahl_; double slohn_; ( string n, string v, int p, double z, double l ); void display_gehalt( );
2 Deklaration der abstrakten Basisklasse Deklaration/Definition der abgeleiteten abstrakten Klasse Mitarbeiter Kennzeichnung als rein virtuelle Methode (/* = 0 */) die display-methode wird nicht definiert Konsequenz: class { string name_; string vorname_; virtual void display() = 0 ; ; #endif die display_gehalt-methode wird nicht definiert Konsequenz: Objekte vom Typ Mitarbeiter können nicht angelegt werden class Mitarbeiter : public { int pnummer_; void display(); virtual void display_gehalt() = 0; ; Objekte vom Typ können nicht angelegt werden deshalb heißt die Klasse abstrakt 12/5 12/6 Definition der Methode display der Klasse Mitarbeiter void Mitarbeiter::display() { cout << " " << endl; cout << "Name: " << name_ << endl; cout << "Vorname: " << vorname_ << endl; cout << "Personalnummer: " << pnummer_ << endl; Deklaration/Definition der abgeleiteten Klasse class : public Mitarbeiter { int gehalt_; (string n, string v, int p, int g) : gehalt_(g) { name_ = n; vorname_ = v; pnummer_ = p; ; void display_gehalt(); ; 12/7 wichtig, da es nur den Default-Konstruktor für die Basisklassen und Mitarbeiter gibt 12/8
3 Definition der Methode display_gehalt der Klasse void ::display_gehalt() { cout << "Gehalt: " << gehalt_ << endl; Ziel: einstellige Funktionen repräsentieren Funktion L_Funktion Q_Funktion jede Funktion hat einen Namen jede Funktion verfügt über eine Methode zum Berechnen des Funktionswerts an einer Stelle x (/* auswerten */) jede Funktion verfügt über eine Methode mit der die Nullstellen der Funktion angezeigt werden können (/* display_nullstellen */) jede Funktion ist von einem bestimmten Typ 12/9 abstrakte Klasse: Funktion die interessierenden Typen werden abgeleitet 12/10 Definition der abstrakten Klasse Funktion Deklaration einer abgeleiteten Klasse #include <iostream> #include <cmath> using namespace std; class Funktion { string name_; virtual double auswerten( double x ) = 0; virtual void display_nullstellen( ) = 0 ; ; class L_Funktion : public Funktion { private: double basis_; L_Funktion ( string & name, double basis ); double auswerten( double x ); void display_nullstellen( ); ; 12/11 Hinweis: f(x) = log b (x), d.h. f(x) = c mit b c = x 12/12
4 Deklaration von abgeleiteten Klassen Definition der Methoden class Q_Funktion : public Funktion { private: double p_, q_; Q_Funktion ( string & name, double p, double q ); double auswerten( double x ); void display_nullstellen( ); ; L_Funktion::L_Funktion( string & name, double basis ) { name_ = name; if ( basis!= 0 basis!= 1 ) basis_ = basis; else basis = 2; double L_Funktion::auswerten( double x ) { double erg; if ( x > 0 ) erg = log(x)/log(basis_); return (erg); Hinweis: f(x) = x 2 + px + q 12/13 void L_Funktion::display_nullstellen( ) { cout << "Nullstelle:" << 1 << endl; Hinweis: log b (x) = ln(x)/ln(b); in C++ ist log(x) = ln(x) 12/14 Definition der Methoden Umgang mit Objekten (/* Version 1 statische Variante */) Q_Funktion::Q_Funktion( string & name, double p, double q ) { name_ = name; p_ = p; q_ = q; double Q_Funktion::auswerten( double x) { double erg; erg = (x * x) + (p_ * x) + q_; return (erg); void Q_Funktion::display_nullstellen( ) { string name; double b, p, q, x; // Eingabe der Parameter L_Funktion my_log_f(name,b); my_log_f.display_nullstellen(); if ( auswahl == 2 ) { // Eingabe der Parameter Q_Funktion my_qua_f(name,p,q); my_qua_f.display_nullstellen(); Hinweis: x 1 = - (p/2) + sqrt((p/2) 2 -q); x 2 = - (p/2) - sqrt((p/2) 2 -q) 12/15 12/16
5 Umgang mit Objekten (/* Version 2 dynamische Variante */) Umgang mit Objekten (/* Version 3 bessere dynamische Variante */) L_Funktion * my_log_f; Funktion * my_f; Q_Funktion * my_qua_f; string n; string n; double b, p, q, x; double b, p, q, x; // Eingabe der Parameter // Eingabe der Parameter my_f = new L_Funktion(n,b); my_log_f = new L_Funktion(n,b); (*my_log_f).display_nullstellen(); if ( auswahl == 2 ) { if ( auswahl == 2 ) { // Eingabe der Parameter // Eingabe der Parameter my_f = Q_Funktion(n,p,q); my_qua_f = Q_Funktion(n,p,q); (*my_qua_f).display_nullstellen(); 12/17 12/18 allgemeine Bemerkungen allgemeine Bemerkungen in einer Zeigervariablen, die die Adresse eines Objekts vom Typ der Basisklasse speichern kann, kann auch die Adresse eines Objekts einer abgeleiteten Klassen gespeichert werden mit Hilfe einer Zeigervariablen, die die Adresse eines Objekts vom Typ der Basisklasse speichern kann, kann auch auf Objekte abgeleiteter Klassen zugegriffen werden wenn eine Methode der Basisklasse virtual deklariert wurde, so wird in Abhängigkeit vom Typ des aktuell gespeicherten Objekts entschieden, welche Version dieser Methode verwendet wird Funktion * my_f; Funktion * my_f; my_f = new L_Funktion(n,b); my_f = new L_Funktion(n,b); my_f = new Q_Funktion(n,p,q); Polymorphie my_f = new Q_Funktion(n,p,q); 12/19 12/20
6 class Klasse1 { virtual { cout << '\t' << "Methode Klasse 1" << '\n'; ; ; class Klasse2 : public Klasse1 { { cout << '\t' << "Methode Klasse 2" << '\n'; ; ; class Klasse3 : public Klasse2 { { cout << '\t' << "Methode Klasse 3" << '\n'; ; ; 12/21 Klasse1 * myobjekt; int auswahl = 4; while ( auswahl!= 0 ) cin >> auswahl; myobjekt = new Klasse1; (*myobjekt).display(); else if ( auswahl == 2 ) { myobjekt = new Klasse2; (*myobjekt).display(); else if ( auswahl == 3 ) { myobjekt = new Klasse3; (*myobjekt).display(); else cout << "Ende"; 12/22 dasselbe Testprogramm Klasse1 * myobjekt; ohne virtual liefert int auswahl = 4; while ( auswahl!= 0 ) cin >> auswahl; class Klasse1 { myobjekt = new Klasse1; (*myobjekt).display(); { cout << '\t' << "Methode Klasse 1" << '\n'; ; ; else if ( auswahl == 2 ) { class Klasse2 : public Klasse1 { myobjekt = new Klasse2; (*myobjekt).display(); else if ( auswahl == 3 ) { { cout << '\t' << "Methode Klasse 2" << '\n'; ; myobjekt = new Klasse3; (*myobjekt).display(); ; class Klasse3 : public Klasse2 { else cout << "Ende"; 12/23 { cout << '\t' << "Methode Klasse 3" << '\n'; ; 12/24 ;
7 noch einmal ein wenig allgemeiner noch einmal ein wenig allgemeiner es habe die Basisklasse (!!!) eine Methode m_virtual, die als virtual deklariert wurde K3.1 K3.2 intern wird eine beim Übersetzen eine Tabelle angelegt, in der für jede Klasse der passende Maschinencode der Methode m_virtual gespeichert wird K3.1 K3.2 die Methode m_virtual ist in allen abgeleiteten Klassen ebenfalls eine virtuelle Methode (/* das Schlüsselwort virtual muß nicht wiederholt werden */) die Methode m_virtual kann in jeder abgeleiteten Klasse re-definiert werden (/* Name, Übergabeparameter und Ergebnistyp müssen gleich sein */) Maschinencode der Methode m_virtual für Maschinencode der Methode m_virtual für 12/25 Hinweis: falls die Methode einer Klasse nicht re-definiert wurde, so wird wie üblich geerbt 12/26 noch einmal ein wenig allgemeiner K3.1 K3.2 beim Aufruf der Methode m_virtual über eine Zeigervariable, die die Adresse eines Objekts vom Typ der Basisklasse speichern kann, wird festgestellt 1. von welchem Typ das Objekt ist (/* zu welcher Klasse das jeweilige Objekt gehört */), dessen Adresse gespeichert wird 2. aus der Tabelle für die Methode m_virtual wird der passende Maschinencode ausgewählt und ausgeführt 12/27
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
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
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.
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:
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
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
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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
Klausur Informatik WS 2012/13
Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen
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
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.
Verwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
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
13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)
13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,
Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!
Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:
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:
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
1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
01. Grundprinzipien der Vererbung
01. Grundprinzipien der Vererbung 1.1 Grundidee der Vererbung Bei der Analyse eines Problems (z.b. Baukasten) stellt man beispielsweise fest, dass 67 % an Daten/Funktionen immer vorkommen 25 % an Daten/Funktionen
Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
12. Vererbung. 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!
Ü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
8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
Methoden. 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
Info-2, Klausurvorbereitung, SS 2016
Info-2, Klausurvorbereitung, SS 2016 Die folgenden Fragen dienen der Vorbereitung auf die Klausur. Die hier gestellten Aufgaben sind umfangreicher als in der Klausur. In der Klausur sind die Fragen schriftlich,
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++ 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
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
Name: Klausur Informatik III WS 2003/04
1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend
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
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
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
SimpleStat mit Methoden
SimpleStat mit Methoden Als Ausgangspunkt nehmen wir folgende Definition (Version 1) von SimpleStat: double sum2; -Quadrate Dieser Objekttyp verfügt über keine Methoden und alle Datenattribute sind public.
Lösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
12 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,
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Klausur Programmieren 2 SS 2016
Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt
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
Programmieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
Konzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
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,
Zeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
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 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
Vorausgesetzte 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,
1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
Überschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
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,
Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Geben
Kurzeinführung in C/C++ Elementare Datentypen in C++
Elementare Datentypen in C++ Anders als in Java sind in C++ die Größen der Elementaren Datentypen maschinenabhängig Die Größe der Datentypen lässt sich mit sizeof ermitteln: int n=sizeof(int) In C++ gilt
Klassen. C++ Übung am 02. Juni 2016
Klassen C++ Übung am 02. Juni 2016 Klassen - der Kern objektorientierter Programmierung - Festlegung der Daten und Funktionen einer Klasse - Deklaration als public oder private - Konstruktoren erzeugen
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
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 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen
Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
Informatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp [email protected] 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
Objektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 400 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 4 4. Ergänzungen zur Laufzeitpolymorphie 4.1. Abstrakte Klassen 4.2. Laufzeittypinformation
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
Vergleich verschiedener OO-Programmiersprachen
Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni 2012 1 Inhaltsverzeichnis 1. Problemstellung
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
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Grundlagen der Informatik 11. Zeiger
11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große
Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung
Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,
Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Einstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
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
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
9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
OOP. 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.
Java Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
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
Klausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
Vererbung 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
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
Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4
4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt
Einführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale
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
C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
