3. Objektorientierung Ergänzungen

Größe: px
Ab Seite anzeigen:

Download "3. Objektorientierung Ergänzungen"

Transkript

1 3. Objektorientierung Ergänzungen

2 3.1 Strukturen Anstelle des Schlüsselwortes class kann auch das Wort struct verwendet werden. Unterschied zu class: Voreinstellung für die Elemente ist public (bei class ist es private) Strukturen werden üblicherweise eingesetzt, wenn man nur einen zusammengesetzten Datentyp ohne zugehörige Methoden verwenden will. Man kann dann auf alle Eigenschaften immer direkt zugreifen. Beispiel structartikel // Definition unsigned int artikelnummer; string bezeichnung; unsigned int bestand; double stueckpreis; }; Artikel a, b=118, Sonderposten,5,12.99};// initialisiert cin>> a.artikelnummer>>a.bezeichnung; if ( a.bestand< limit ) bestelle(&a); Man stellt aber schnell fest, dass es in der Regel ohne "Funktionen" schlecht geht. Dr. Norbert Spangler / Grundlagen der Informatik

3 class Kreis // Klassendefinition private: Punkt mittelpunkt; double radius, umfang, flaeche, durchmesser; static const double pi; public:. }; 3.2 Klassenspezifische Elemente Durch die Verwendung des Schlüsselworts static wird eine Eigenschaft zur klassenspezifischen Eigenschaft und ist nur einmal innerhalb der Klasse vorhanden. Sie erhält ihren Wert außerhalb der Klasse, da sie unabhängig von Objekten immer existiert. Problem: Wie erhält pi seinen Wert? const double Kreis::pi= ; void main..} Dr. Norbert Spangler / Grundlagen der Informatik

4 Klassenspezifische Elemente Weitere Beispiele für klassenspezifische Daten: Zähler für die Anzahl der deklarierten Objekte einerklasse geändert mittels Konstruktor/Destruktor Umrechnungsfaktoren wie Wechsel-/Devisenkurse Geschwindigkeit bei Schiffen km/h Knoten. Weiterhin können auch klassenspezifische Methoden vorkommen. class XY private: static anzahlobjekte; public: static getanzahl(); }; Sie können auch über den Klassennamen aufgerufen werden (unabhängig von einem Objekt) und arbeiten nur mit den statischen Daten: cout<<"anzahl Objekte"<<XY::getAnzahl()<<endl; Dr. Norbert Spangler / Grundlagen der Informatik

5 3.3 Der this-zeiger Manchmal ist es in einer Methode einer Klasse erforderlich, das gesamte Objekt zu kennen, für welches die Methode aufgerufen wurde. Beispiel: Die Methode reserviere der Klasse Artikel soll eine Bestellung auslösen, wenn der Bestand einen speziellen Wert interschreitet mittels einer Funktion void bestellen(artikel*) des Bestellsystems. if ( bestand <=. ) bestellen(?????); Man benötigt hierzu de n Namen oder die Adresse des aktuellen Objekts der Klasse Artikel, worüber reserviere aufgerufen wurde. Dr. Norbert Spangler / Grundlagen der Informatik

6 Der this-zeiger Problem: Wie erkennt die Methode, von welchem Objekt sie aufgerufen wurde und welche Eigenschaften zu nehmen sind? Lösung: Jede Methode hat eine "versteckte Zeigervariable". In dieser ist die Adresse des gewählten Objektsgespeichert. Dies ist der this-zeiger. Dieser kann nicht geändert werden. Die Deklaration kann man sich so vorstellen: Klasse * const this=&aktuelles Objekt. this ist ein Schlüsselwort Dr. Norbert Spangler / Grundlagen der Informatik

7 Lösung mit dem this-zeiger Der this-zeiger unsigned int Artikel::reserviere(unsigned int menge) void bestellen(artikel*); unsigned int abgang; if ( menge<=bestand) abgang=menge; else abgang=bestand; bestand-=abgang; if ( bestand <=.. ) bestellen(this); return abgang; }; Dr. Norbert Spangler / Grundlagen der Informatik

8 Verwendung des this-zeigers Programmierstil: Obwohl in einer Methode alle Eigenschaften des Objekts einer Klasse direkt über den Eigenschaftsnamen angesprochen werden können, kann man dies auch über den this-zeiger abwickeln: Beispiel: In der Klasse Artikel kann in einer Methode entwederdirekt bestand oder über den this-zeiger this->bestand verwendet werden. Vorteil: leichte Unterscheidung zwischen lokalen Variablen und Eigenschaften der Klasse. Dr. Norbert Spangler / Grundlagen der Informatik

9 Verwendung des this-zeigers unsigned int Artikel::reserviere(unsigned int menge) void bestellen(artikel*); unsigned int abgang; if ( menge<= this->bestand ) abgang=menge; else abgang= this->bestand; this->bestand-=abgang; if ( this->bestand <= 100 ) bestellen(this); return abgang; }; Eigenschaft Lokale Variable Dr. Norbert Spangler / Grundlagen der Informatik

10 3.4 Das friend-konzept Bisher war es nur mittels "protected" möglich, einer anderen Klasse (und da auch nur abgeleiteten) den Zugriff auf private-elemente zu gewähren. Wenn spezielle Funktionen oder andere Klassen besonders "eng" mit einer Klasse X "zusammenarbeiten" kann es sinnvoll sein, diesen den Zugriff auf die private-elemente zu genehmigen. Dies geschieht mittels einer friend-deklaration in der Klasse X, d.h. in der Klasse, welche "Eigentümer" der Daten ist. Die "Eigentümer-Klasse" vergibt die Zugriffsrechte an andere. class X }; public: friend class Y;//alle Methoden der Klasse Y dürfen auf die //private-elemente von X zugreifen friend void f1( );// ebenso die Funktion f1 Dr. Norbert Spangler / Grundlagen der Informatik

11 3.5 Typumwandlungen für Klassen Implizite Typumwandlungen gibt es bei arithmetischen Operanden z.b. int <-> double Explizite Typumwandlungen erfolgen durch Anwendungeines Cast-Operators Bei Klassen besteht die Aufgabe darin, aus einem Zeiger auf die abgeleiteten Klasse einen Basisklassenzeiger zu machen oder umgekehrt, sowie aus einem Objekt der abgeleiteten Klasse eines der Basisklasse zu machen oder umgekehrt (selten) Dr. Norbert Spangler / Grundlagen der Informatik

12 Typumwandlungen Up-Cast jeder Zeiger auf eine abgeleitete Klasse kann automatisch in einen Basisklassenzeiger konvertiert werden. Dies gilt auch für Objekte. Zeiger auf Druckerpapier kann zum Zeiger auf Artikelwerden Druckerpapier ist automatisch vom TypArtikel Beispiel: Druckerpapier kk,*ptrk=&kk; ptrk->anzeigen();//aufruf der Anzeige-Methode von Druckerpapier static_cast<artikel*>(ptrk) ->anzeigen(); //jetzt vonartikel Der static_cast-operator ist generell dafür gedacht, implizit mögliche Typumwandlungen umzusetzen. Dr. Norbert Spangler / Grundlagen der Informatik

13 Weitere Cast-Operatoren Down-Cast: Basisklasse -> abgeleitete Klasse ist riskant Artikel * pa; Druckerpapier *pd=static_cast<druckerpapier>(pa); Riskant:Nur sinnvoll wenn in pa die Adresse einesobjekts vom Typ Druckerpapiert ist Dynamic-Cast: Down-Cast mit Plausibilitätskontrolle (für polymorpheklassen) Druckerpapier *pd=dynamic_cast<druckerpapier>(pa); if ( pd==null) // kein Druckerpapier else //ist Druckerpapier Sonstige Cast-Operatoren Const-Cast: macht const rückgängig Reinterpret-Cast: Bitweise neue Interpretation ist selten Dr. Norbert Spangler / Grundlagen der Informatik

14 3.6 Zeiger und Vererbung/Polymorphie Bei der Wahl einer über eine Zeigervariable aufgerufenen Methode ist für die Auswahl der Typ des Zeigers entscheidend. Analog Praktikum: Es wird die Methode der Basisklasse Artikel aufgerufen. Wünschenswert wären aber die passenden(!) Methoden der abgeleiteten Klassen void main() vector<artikel*> v; Toner t(110,"laserjet"); Druckerpapier d (120,"Laserjet,5); v[0]=&t; //dies geht v[1]=&d; } v[0]->anzeigen(); v[1]->anzeigen(); Dr. Norbert Spangler / Grundlagen der Informatik

15 Zeiger und Vererbung/Ziel void main() int i; vector<artikel*> v; Toner t(110,"laserjet"); Druckerpapier d (120,"Laserjet,5); v[1]=&d; static_cast<druckerpapier*>(v[1]) ->anzeigen(); } cin>>i; static_cast<???????r*>(v[i]) ->anzeigen(); Eine Lösung wäre ein Down-Cast auf die abgeleitete Klasse. Es ist aber in der Regel nicht bekannt, auf welchen Objekttyp der Basisklassenzeiger v[i] zeigt. Dr. Norbert Spangler / Grundlagen der Informatik

16 Zeiger und Vererbung Konventionelle Lösung: Abfrage des Typs der abgeleiteten Klasse Voraussetzung beispielsweise: Einführung einer Eigenschaft Typ und einer Methode gettyp in der Basisklasse if ( v[i]->gettyp() == 'D' ) //fuer Druckerpapier static_cast<druckerpapier*>(v[1]) ->anzeigen(); else if. -> umständlich/fehleranfällig viele Anpassungen bei neuen abgeleiteten Klassen Dr. Norbert Spangler / Grundlagen der Informatik

17 Objektorientierte Lösung: Polymorphie Unter Polymorphie versteht man Wahl der passenden Methode, wenn der Typ (die Klasse) eines Objektes, dessen Adresse in einem Zeiger gespeichert ist, erst zur Laufzeit feststeht. Es kann also erst zur Laufzeit entschieden werden, welche Methoden (z. B. zur Anzeige) zu nehmensind. Dies ist beispielsweise dann der Fall, wenn der Anwender ein Objekt auswählen kann. Hierzu werden virtuelle Methoden implementiert, bei deren Ausführung dann der Compiler dafür sorgt, dass zur Laufzeit die passende Version ausgeführt wird, wenn das Objekt über einen Zeiger (auf die Basisklasse) angesprochen wird. classartikel Deklaration : Das Schlüsselwort virtual wird virtual void anzeigen(); in der Deklaration (Headerdatei) der Basisklasse Vorangestellt. Dies gilt dann automatisch für alle }; abgeleiteten Klassen. Dr. Norbert Spangler / Grundlagen der Informatik

18 Virtuelle Methoden Jede Klasse mit virtuellen Methoden erhält eine Virtuelle Methodentabelle ( VMT) Diese enthält die Adressen aller virtuellen Methoden. Jedes Objekt erhält einen (internen) Zeiger auf die Methodentabelle der Klasse, zu welcher dieses Objekt gehört. Die Wahl der Methode erfolgt über diesen Zeiger, der zum Objekt gehört. Damit ist bei Zugriff über Zeiger der Typ des Objekts für die Auswahl der Methode verantwortlich und nicht mehr, wie bisher, der Typ des Zeigers. Nachteile: Erhöhter Speicherplatz- und Zeitbedarf Vorteil: Elegante Lösungen möglich, welche sonst aufwändiger wären Dr. Norbert Spangler / Grundlagen der Informatik

19 3.7 Abstrakte Klassen Prinzipiell gibt es die Klassen Artikel bzw. Bauteil nicht real. Es macht daher in der Regel keinen Sinn, hiervon Objekte zu deklarieren. Dies kann durch den Compiler unterstützt werden, wenn man rein virtuelle Funktionen in der Klassendefinition hat. Diese erhält man durch das Schlüsselwort virtual, ergänzt durch die Endung =0; virtual typ name( )=0; // rein virtuelle Funktion- nicht implementiert Dann kann von der dazugehörigen Klasse kein Objekt mehr deklariert werden. Abstrakte Klassen dienen u.a. als Basis einer Vererbungshierarchie. Beispiel: virtual void display()=0; Dr. Norbert Spangler / Grundlagen der Informatik

20 3.8 Überladen von Operatoren Ein Operator ist überladen, wenn er für unterschiedliche Datentypen definiert ist. Beispiele: + < == usw. Man kann Operatoren für weitere Datentypen (i.a. Klassen) zulassen oder auch als globale Funktion definieren Bisherige Beispiele: Klasse Bruch KlasseArtikel Operatoren + - * / Operator < : Artikelnummer oder Bezeichnung? Man kann nicht: neue Operatoren erfinden bereits existierende Bedeutungen verändern ( + für int ist festgelegt!!!) unäre in binäre ändern oder umgekehrt den Vorrang ändern Dr. Norbert Spangler / Grundlagen der Informatik

21 Übersicht Rechenoperatoren Zusammengesetzte Rechenoperationen Vergleiche Ein-/Ausgabe = Zuweisungsoperator / ebenso Kopierkonstruktor [] Indexoperator ( ) Funktionsaufruf -> später in Programmieren 3 Dr. Norbert Spangler / Grundlagen der Informatik

22 class Bruch //siehe WS Kap 13 }; Überladen von Operatoren: Ein Beispiel Bruch Bruch::addiere(Bruch b) Bruch h; h.zaehler=zaehler*b.nenner+b.zaehler*nenner; h.nenner=nenner*b.nenner; h.kuerzen(); return h; } void main Bruch a,b,c;. c=a.addiere(b); }

23 Operatorfunktion: Rechenoperationen/Vergleiche Schöner (lesbarer) wäre bei Brüchen die Schreibweise c=a+b; Dies erreicht einfach man durch die Verwendung von Operatorfunktionen, indem man der Funktion einen besonderen Namen gibt operator operationszeichen also hier operator + Bruch Bruch::operator+(Bruch b) Bruch h; h.zaehler=zaehler*b.nenner+b.zaehler*nenner; h.nenner=nenner*b.nenner; h.kuerzen(); return h; } void main Bruch a,b,c,d;. c=a+b; d=c.operator+(b);//geht auch } Analog +=, < siehe Programmierung I/Kap 13 Dr. Norbert Spangler / Grundlagen der Informatik

24 Operatorfunktion: anderer Datentyp Eine Operatorfunktion kann auch mit unterschiedlichen Typen arbeiten. Gehört sie zu einer Klasse ist der erste (linke) Operand immer vom Typ der Klasse und ist das Objekt, mit dem die Methode (=Operatorfunktion) aufgerufen wird. Der zweite(rechte) operand ist dann der Parameter der Methode.. Beispiel: Addition eines Bruchs zu einer ganzen Zahl Bruch Bruch::operator +(int x) Bruch h; h.zaehler=zaehler+x*nenner; h.nenner=nenner; h.kuerzen(); return h } void main Punkt a,b;. c=a+2;//aufruf } Dr. Norbert Spangler / Grundlagen der Informatik

25 Operatorfunktionen: cast Umwandeln eines Bruchs in double(bisher): double h=p.umwandeln(); Bessere Alternative: double h=static_cast<double>(p); Erforderliche Methode: class Bruch // Klassendefinition double() const; }; Bruch::operator double() const return double(zaehler)/double(nenner); } Anmerkung: - durch die Angabe const wird das Objekt nichtgeändert - Methode hat keinen Typ, da dieser durch die Angabe double feststeht - Allgemein: Typ() const; Dr. Norbert Spangler / Grundlagen der Informatik

26 Ein-/Ausgabe Wiederholung: cin>>a ist einausdruck, dessen Wert bei korrekt abgelaufener Eingabe "cin" ist und ansonsten 0 cin ist ein Objekt der Eingabeklasse istream und analog ist cout ein Objekt von ostream. Damit haben Operatorfunktionen zur Ein-/Ausgabe folgende Form: istream& operator >> (istream&, Typ&) ostream& operator<< (ostream&, Typ&) Der erste Parameter ist immer links, der zweite rechts vom Operatorsymbol. Anmerkung: üblicherweise werden Referenzen verwendet. Zu welcher Klasse gehört nun diese Operatorfunktion? Formal wäre es das erste (linke) Argument -> also istream, wasnicht möglich ist, da diese Klasse vorgegeben ist. Lösung: globale Funktion (wie anfangs erwähnt). Dr. Norbert Spangler / Grundlagen der Informatik

27 Globale Operatorfunktion zur Ein-/Ausgabe istream& operator>>(istream &is, Bruch &q) int z,n; is>>z>>n; Bruch h(z,n); q=h; return is; } ostream& operator<<(ostream &os, Bruch &q) os<<q.zaehler<<"/"<<q.nenner <<" "; return os; } Voraussetzung Die beiden Operatorfunktionen sind als friend in der Klasse Punkt deklariert. Ansonsten müsste mit get/set gearbeitet werden Dr. Norbert Spangler / Grundlagen der Informatik

28 Beispielprogramm #include Bruch.h" #include <istream> #include <ostream> #include <iostream> using namespace std; void main() istream& operator>> (istream&, Bruch&); ostream& operator<< (ostream&,bruch&); Bruch a,b,c; cout<<" 2 Brueche eingeben\n"; cin>>a>>b; //Aufruf Eingabe c=a+b; //Aufruf Rechnen cout<<"summe\n"; cout<<c; //AufrufAusgabe } Dr. Norbert Spangler / Grundlagen der Informatik

29 Sonstige interessante Operatorfunktionen Indexoperator für Container C Ziel: Schreibweise x[i] wenn kein Index existiert Wenn eine Klasse Zeiger als Eigenschaften enthält sind beispielsweise folgende einfache Operatoren interessant: == bzw.!= Operator für eine Klasse K Ziel: if ( x == y ) Kopier- und Zuweisungsoperator: Ziel: x=y; Dr. Norbert Spangler / Grundlagen der Informatik

30 3.9 Zusammenfassung Objektorientierung Die 4 Grundprinzipien der Objektorientierung Datenabstraktion Datenkapselung Vererbung Polymorphie Dr. Norbert Spangler / Grundlagen der Informatik

31 Datenabstraktion Klassen werden gebildet durch die Beschreibung ihrer Eigenschaften und Methoden Eine Klasse ist also charakterisiert durch die Zusammenfassung aller Gemeinsamkeiten von Eigenschaften und Methoden. Eine Klasse ist das Muster (die Schablone) für Objekte. Objekte sind Variable (Instanzen) vom Typ der zugehörigen Klasse. Datenkapselung Es gibt eine Einteilung der Eigenschaften/Methoden in 2 Gruppen : öffentlich (public) -> in den aufrufenden Programmen bekannt/sichtbar nicht-öffentlich (private) -> nur innerhalb der Klasse bekannt/sichtbar Üblicherweise sind Eigenschaften private und Methoden public. Damit erfolgt ein kontrollierter Zugriff auf die private-eigenschaften (Daten) der Objekte durch Bereitstellung zugehöriger public-methoden. Dr. Norbert Spangler / Grundlagen der Informatik

32 Vererbung Aus existierenden (Basis) Klassen könne abgeleitete Klassen erzeugt werden, welche die Eigenschaften und Methoden dieser Basisklasse erben : Eigene Eigenschaften können die Eigenschaften der Basisklasse ergänzen. Bsp.: Druckerpapier hat die zusätzliche Eigenschaft packungsgroesse Eigene Methoden können die Methoden aus den Basisklassen ergänzen oder auch überschreiben (=ersetzen). Polymorphie Darunter versteht man Fähigkeit, erst zur Laufzeit des Programmes für das über eine Zeigervariable adressierte Objekt die passende Methode auszuwählen. Eine derartig ausgewählte Methode heißt auch virtuelle Methode. Andere Begriffe: dynamisches oder spätes Binden Dr. Norbert Spangler / Grundlagen der Informatik

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Überladen von Operatoren

Überladen von Operatoren - Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen

Mehr

01. Grundprinzipien der Vererbung

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

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

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

Mehr

Verwendung von Klassen in C++

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

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts

Mehr

Die abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,

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

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

Mehr

Programmieren in C++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - 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

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Vorkurs Informatik: Erste Schritte der Programmierung mit C++

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

Mehr

Zeiger, Arrays und Strings in C und C++

Zeiger, Arrays und Strings in C und C++ Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für

Mehr

Prof. W. Henrich Seite 1

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

Mehr

3 Objektorientierte Konzepte in Java

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

Mehr

Java Einführung Methoden. Kapitel 6

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

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Einführung in das Objektorientierte Programmieren mit C++

Einführung in das Objektorientierte Programmieren mit C++ BEREICH DATENTECHNIK I CP 500 00 TH 02 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 5 5. Überladen von Operatoren 5.1. Allgemeines 5.2. Operator-Funktionen 5.3. Zuweisungs-Operator

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Überblick. 7. Überladen von Operatoren

Überblick. 7. Überladen von Operatoren Ü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

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Peter Piehler peter.piehler@symetrion.com Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 12 13 Peter Piehler (DBIS) C/C++

Mehr

11.3 Virtuelle Methoden

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

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

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) 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,

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Programmieren in Java

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

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

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

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

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) 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!

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4.

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4. Übersicht 4.1 Ausdrücke 4.2 Funktionale Algorithmen 4.3 Anweisungen 4.4 Imperative Algorithmen 4.4.1 Variablen und Konstanten 4.4.2 Prozeduren 4.4.3 Verzweigung und Iteration 4.4.4 Globale Größen Einführung

Mehr

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt

Mehr

Kap 09. Funktionen/Ergänzungen

Kap 09. Funktionen/Ergänzungen Kap 09. Funktionen/Ergänzungen 9.1 Inline-Funktionen Der Mechanismus der Parameterübergabe hat einen "hohen" organisatorischen Aufwand z.b. durch kopieren der Parameteretc. Ist die Funktion vergleichsweise

Mehr

11. Übung Informatik II - Operatorfunktionen

11. Übung Informatik II - Operatorfunktionen Stand: 26. Juni 2015 Inhalt 1 2 3 Übersicht 1 2 3 Warum Operatoren überladen? Großteil der Operatoren (Arithmetik, Logik, Vergleiche) nur für Standarddatentypen (Zahlen, Zeiger) implementiert vergleichbare

Mehr

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Einführung in C++ Operatoren überladen (Klassen)

Einführung in C++ Operatoren überladen (Klassen) Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der

Mehr

Überschreiben von Methoden

Ü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

Mehr

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. 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 &

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Einführung in C++ Vererbung und Polymorphismus

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

Mehr

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung

7 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

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Teil 10: Operator Überladung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 10: Operator Überladung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 10: Operator Überladung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 10 Operator-Überladung... 3 10.1 Übersicht aller

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

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 Templates Nochmal zusammengefasst Die Basis der OOP- Zusammengefasst 2 Templates Programmiersprachen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie WiMa-Praktikum 1, Teil C++, Tag 5 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 29.08.08

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon. Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

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:

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Kurzeinführung in C/C++ Elementare Datentypen in C++

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

Mehr

Angewandte Mathematik und Programmierung

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

Mehr

Programmierung und Angewandte Mathematik

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

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Klausurvorbereitung Lösung

Klausurvorbereitung Lösung Ausgabe 1 a) unsigned char erzeuge_bitmuster() static int z=0; int rest; unsigned char bm; rest = z % 4; z=z+1; switch (rest) case 0: bm = 0x00; break; case 1: bm = 0x11; break; case 2: bm = 0x33; break;

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

C++ Programmierkurs. 5. Klassen. Wintersemester 04 / 05. Christian Hagemeier Lehrstuhl Prof. Dr. Schrader

C++ Programmierkurs. 5. Klassen. Wintersemester 04 / 05. Christian Hagemeier Lehrstuhl Prof. Dr. Schrader C++ Programmierkurs Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute http://www.zaik.de/afs/teachings/

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

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

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr