3. Objektorientierung Ergänzungen
|
|
- Guido Lorenz Heintze
- vor 6 Jahren
- Abrufe
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 Ü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 des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
Mehr01. 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
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
MehrVerwendung 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
MehrRepetitorium 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
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
MehrEinstieg 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
Mehrmagnum 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?...
MehrThemen. 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
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
MehrAufbau 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
MehrProgrammieren 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
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
MehrKapitel 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
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
MehrVorkurs 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
MehrZeiger, 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
MehrProf. 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
Mehr3 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
MehrJava 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
MehrEinfü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
MehrProbeklausur: 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,
MehrEinfü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
MehrJava 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 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
MehrBeispiel: 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
MehrSystemnahe 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++
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
MehrEinfü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
Mehr13. 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,
MehrVerhindert, 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:
MehrProbeklausur: 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,
MehrInhaltsü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)
MehrProgrammieren 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
MehrKapitel 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
MehrDeklarationen 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.
MehrGrundzü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
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Mehr12. 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!
MehrVererbung & 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
MehrJava 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 4.4.1 Variablen und Konstanten 4.4.2 Prozeduren 4.4.3 Verzweigung und Iteration 4.4.4 Globale Größen Einführung
MehrZiel, 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
MehrKap 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
Mehr11. Ü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
MehrPrä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.
MehrEinfü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
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
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 &
MehrInformationsverarbeitung 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
MehrUnterprogramme. 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
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
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
MehrPass 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
MehrWerner 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
MehrObjektorientierte 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
MehrJava 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
MehrTeil 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
MehrDie 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
MehrObjektorientiertes 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
MehrObjektorientierung: 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
MehrKlassen 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
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 Templates Nochmal zusammengefasst Die Basis der OOP- Zusammengefasst 2 Templates Programmiersprachen
MehrProgrammieren 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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
MehrObjektorientierte 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
MehrVererbung 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
MehrJava 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.
MehrDer 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
MehrJava 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
MehrLetztes 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
Mehr1. 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:
MehrJavakurs 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
Mehr5.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
MehrKlausur 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
MehrObjektorientierte 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
MehrSilke 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
MehrTheorie 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
MehrObjektorientierte 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
MehrAngewandte 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
MehrDie 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
MehrAssoziative 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...
MehrWintersemester 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
MehrEinfü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
MehrKurzeinfü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
MehrAngewandte 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
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
MehrEinfü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
MehrRO-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
MehrMethoden (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
MehrJava 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
MehrKlausurvorbereitung 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
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
MehrC++ 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/
Mehr5.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
MehrProgrammierung 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
MehrProgrammieren 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
MehrDr. 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
MehrUlla 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