C++ für Dummies. Stephen R. Davis. Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr.

Größe: px
Ab Seite anzeigen:

Download "C++ für Dummies. Stephen R. Davis. Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr."

Transkript

1 Stephen R. Davis C++ für Dummies Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr IWT Verlag GmbH An International Thomson Publishing Company Bonn Albany Belmont Boston Cincinnati Detroit London Madrid Melbourne Mexico City New York Paris Singapore Tokyo

2 4 4 - INHALT Einführung 19 Teil I Grundlagen: Der Rückblick auf C 17 1 C - wie die alten Römer schon sagten 29 Deklaration einfacher Variablen 30 Speicherklassen 32 Globale Variablen 32 Lokale Variablen 33 Funktionsdeklaration 34 Alles Wissenswerte über C-Ausdrücke 36 Einfache Operatoren 37 Mathematische Operatoren 39 Bitweise Opertoren 40 Logische Operatoren 40 Zuweisungsoperatoren 42 Sonstige Operatoren 43 Ein paar Besonderheiten 44 Resümee 45 2 Zeiger in C 47 Deklaration und Verwendung einfacher Zeiger 47 Service-Provider im Internet 47 Was finden Sie in diesem Kapitel? 47 Zeigeroperationen 50 Inkrementieren von Zeigern 50 Andere Zeigeroperationen. 52 Arrays und Zeiger: Wie bringt man sie zusammen? 52 Die Übergabe von Zeigern an Funktionen 54 Zeiger auf Funktionen 55 7

3 C++ für Dummies Heap-Speicher 56 Resümee 58 Service-Provider im Internet 59 Was finden Sie in diesem Kapitel? 59 3 Benutzerdefinierte Typen: Die C-Struktur 59 C-Strukturen 59 Zeiger auf C-Strukturen 61 Operationen für Zeiger auf Strukturen 62 Verwendung von Zeigern auf Strukturen 63 Strukturen und Funktionen 64 Allozierung von Strukturen vom Heap 65 Resümee 66 Die C-Version unseres Budget-Programms: BUDGET 1.C Minuten-Test 77 Die Lösungen 79 Teil II Aufwärmen: Die nichtobjektorientierten Features von C Der Einstieg in C++ 85 Wie alles kam? 85 Die frühen Jahre ( ) 86 Die funktionalen Jahre ( ) 86 Die strukturierten Jahre ( ) 86 Die objektorientierten Jahre ( heute) 87 Warum C++? 88 Resümee 89 8

4 Inha Ein paar ganz einfache Dinge 91 Ein neuer Kommentarstil 91 Wozu ist das gut? 91 Wie funktioniert das? 92 Variablendeklarationen an beliebiger Stelle 93 Wozu ist das gut? 93 Wie funktioniert das? 93 Konstante Variablen 96 Wozu ist das gut? 96 Wie funktioniert das? 97 Volatile-Variablen 99 Wozu ist das gut? 100 Wie funktioniert das? 100 Der referentielle Typbezeichner 102 Wozu ist das gut? 103 Wie funktioniert das? 103 Resümee 106 Darf ich vorstellen: Funktionen 107 Funktionsprototypen 107 Wozu ist das gut? 108 Warum soll ich mich vom Compiler nerven lassen? 109 Wie funktioniert das? 111 Inline-Funktionen 114 Wozu ist das gut? 114 Geht das nicht auch in C? 115 Wie funktioniert das? 116 Wieviel schneller ist schneller? 117 Überladen von Funktionen 120 Wozu ist das gut? 121 Wie funktioniert das? 121 Was heißt»ausreichend unterschiedlich«? 123 Was ist also»nicht ausreichend unterschiedlich«? 123 Drucken Sie, was Sie wollen, aber bringen Sie nichts mit den Namen durcheinander 124

5 C++ für Dummies Defaultargumente für Funktionen 126 Wozu ist das gut? 127 Wie funktioniert das? 127 Argumentativ überladen Resümee Ein- und Ausgaben über den Stream 131 Wozu brauche ich Streams, nachdem ich mich gerade an printfo gewöhnt habe? 131 Der Fall Stream-I/O: Teil Der Fall Stream-I/O: Teil Wie funktioniert Stream-I/O? 133 Resümee 136 BUDGET als C++-Programm: BUDGET2.CPP Minuten-Test 145 Die Lösungen 147 Teil III Reinschnuppern: Einführung von Klassen Objektorientierte Programmierung 153 Abstraktion und Mikrowellen 153 Funktionale Hamburger 155 Objektorientierte Hamburger 155 Klassifizierung und Mikrowellen 156 Funktionale Klassifizierung 157 Objektorientierte Klassifizierung 157 Wozu klassifizieren? 157 Objektorientierte Programmierung und Effizienz 160 Resümee

6 Inha Klassen in C Wozu braucht man Klassen in C++? 164 Wie kann man in C++ Klassen erzeugen? 165 Benennung von Elementfunktionen 166 Definition einer Elementfunktion in einer Klasse 168 Elementfunktion außerhalb einer Klasse 169 Aufruf einer Elementfunktion 171 Aufruf einer Elementfunktion mit einem Zeiger? 172 Zugriff auf Elemente aus einer Elementfunktion 173 Überladene Elementfunktionen 175 Resümee 176 Bitte nicht stören: Geschützte Elemente 177 Durch protected geschützte Elemente 177 Wozu ist das gut? 177 Wie funktioniert das? 179 Nochmal, warum soll man protected-elemente benutzen? 181 Die Klasse kann ihren internen Status schützen 181 Es ist einfacher, eine Klasse mit eingeschränkter Schnittstelle zu verwenden 182 Es ist einfacher, eine Klasse mit eingeschränkter Schnittstelle zu unterstützen 183 Wozu hat man denn Freunde? 188 Wozu brauche ich Freunde (schließlich bin ich eine Insel)? 188 Wie funktioniert das? 189 Resümee 192 Dem Objekt einen guten Start verpassen: Der Konstruktor 193 Objekte erzeugen 193 Konstruktoren 196 Wozu ist das gut? 196 Wie funktioniert das? 198 Der Destruktof 202

7 C++ für Dummies Wozu ist das gut? 202 Wie funktioniert das? 203 Resümee Die Klassengesellschaft 207 Objektorientierte Analyse und Design 207 Ein Beispiel für Analyse und Design 208 Schnelle Analyse und Design: Ein strukturierter Ansatz 209 Schnelle Analyse und Design: Ein objektorientierter Ansatz 210 Eine OO-Lösung für unser Problem 213 Resümee 216 Ein Budget mit Klasse: BUDGET3.CPP Minuten-Test 226 Die Lösung 227 Teil IV Reinspringen: Die Gewöhnung an Klassen Konstruktive Argumente erzeugen 239 Konstruktoren mit Argumenten 239 Wozu ist das gut? 240 Wie funktioniert das? 241 Überladen des Konstruktors 244 Default-Defaultkonstruktoren 247 Konstruktion von Klassenelementen 250 Konstruktionsreihenfolge 256 Lokale Objekte werden in der Reihenfolge konstruiert Statische Objekte werden nur einmal konstruiert 257 Alle globalen Objekte werden vor main() konstruiert 258 Globale Objekte werden in keiner bestimmten Reihenfolge konstruiert

8 Inha Elemente werden in der Reihenfolge konstruiert, in der sie deklariert werden 261 Destruktoren werden in der umgekehrten Reihenfolge der Konstruktoren aufgerufen Resümee Noch mehr neue und verbesserte Schlüsselwörter Die neuen Schlüsselwörter: new und delete Wozu ist das gut? Wie funktioniert das? Die Allozierung von Arrays Resümee Der Copy-Konstruktor Der Copy-Konstruktor Wozu ist das gut? Wie funktioniert das? Der automatische Copy-Konstruktor Flache Kopien versus tiefe Kopien Es ist ein langer Weg zu temporären Objekten Resümee Andern des Objekttyps Namenlose Objekte Wozu ist das gut? Wie funktioniert das? Typumwandlung mit Hilfe von Konstruktoren Resümee Statische Elemente: Kann Weichspüler helfen? Statische Datenelemente Wozu ist das gut? Wie funktioniert das? Referenzieren von statischen Datenelementen

9 C++ für Dummies Verwendungsmöglichkeiten statischer Datenelemente 296 Statische Elementfunktionen 298 Resümee 302 Verwaltung eines zweckmäßigeren Budgets: BUDGET4.CPP Minuten-Test 313 Die Lösungen 315 Teil V Endspurt: Vererbung Vererbung 321 Wozu ist die Vererbung gut? 322 Wie funktioniert die Vererbung? 324 Konstruktion einer Unterklasse 326 Die HAS_A-Beziehung 328 Resümee Virtuelle Elementfunktionen 331 Wozu ist Polymorphismus gut? 334 Wie funktioniert Polymorphismus? 337 Nachos mit der polymorphen Methode erzeugen 339 Wann ist eine Funktion virtuell und wann nicht? 342 Virtuelle Betrachtungen 344 Resümee Klassenfaktorierung und abstrakte Klassen 349 Faktorierung 349 Abstrakte Klassen 357 Wie funktioniert das? 358 Wie man aus einer abstrakten Klasse eine wirkliche Klasse macht 360 Übergabe abstrakter Klassen

10 Inha Wozu sind rein virtuelle Funktionen gut? 363 Ermittlung des Laufzeit-Typs 365 Resümee 369 Die Verwendung der Vererbung zur Rationalisierung des Budgets: BUDGET5.CPP Minuten-Test 378 Die Lösungen 379 Teil VI Für Fortgeschrittene: Optionale Features Mehrfachvererbung 395 Wie funktioniert die Mehrfachvererbung? 395 Vererbungsmehrdeutigkeiten 397 Virtuelle Vererbung 398 Objekte der Mehrfachvererbung erzeugen 404 Zum Schluß: Eine gegenteilige Meinung Die Zugriffssteuerung 407 Ein wirklich exklusiver Club: Private Mitglieder 407 Warum sollte ich private verwenden, wenn ich genausogut protected verwenden kann? 408 Wie verwendet man private? 409 Geheime Testamente oder nicht-öffentliche Vererbung 409 Wann ist eine Unterklasse keine Unterklasse? 414 Resümee Überladen von Operatoren 417 Wozu sind überladene Operatoren gut? 418 Wie operiert eine Funktion und wie funktioniert ein Operator? 419 Was hat das mit überladenen Operatoren zu tun? 420 Wie funktioniert das Überladen von Operatoren? 420

11 C++ für Dummies Eine detailliertere Betrachtung 423 Operatoren als Elementfunktionen 425 Und noch eine Komplikation 428 Cast-Operator 430 Resümee Der Zuweisungsoperator 433 Warum ist das Überladen des Zuweisungsoperators so wichtig? 433 Wie überlade ich den Zuweisungsoperator? 434 Resümee Stream-I/O 439 Wie funktioniert Stream-I / O? 439 Die fstream-unterklassen 441 Die strsteam-unterklassen 445 Manipulatoren 446 Gebräuchliche Ausgabeoperationen 450 Freundliche Ausgabeoperatoren 453 Resümee Objektauswertung und Signaturfelder 459 Aufruf von Elementfunktionen mit ungültigen Zeigern 460 Und, die Konsequenzen? 461 Was tun gegen ungültige Zeiger? 462 Was kann islegak) sonst noch? 465 Resümee 467 Teil VII Top Ten Zehn Methoden, Fehler in Ihrem Programm zu vermeiden 471 Aktivieren Sie alle Warnungen und Fehlermeldungen 471 Verwenden Sie die STRICT-Kompilierung 473

12 Inha Bestehen Sie auf einer korrekten Kompilierung 473 Gewöhnen Sie sich einen sauberen und konsistenten Programmierstil an 474 Schränken Sie die Sichtbarkeitsbereiche ein 475 Verwenden Sie ein Signaturfeld 477 Kommentieren Sie Ihren Code 478 Durchlaufen Sie jeden Pfad mindestens einmal im Einzelschrittmodus 478 Überladen Sie keine Operatoren 479 Vermeiden Sie die Mehrfachvererbung 479 Zehn C++-Features, die in diesem Buch nicht berücksichtigt wurden 481 Templates (Schablonen) 482 Ausnahmen (Exceptions) 482 Typidentifizierung zur Laufzeit (RTTI) 484 Namensbereiche 484 Überladen von new und delete 485 Die Klasse String 485 Zeiger auf die Elementoperatoren ->* und * Bit-Zeiger von Intel 485 Die zehn wichtigsten Compiler-Schalter (und noch zwei mehr) 487 Inline-Funktionen ausführen (Out-of-line Inline-Funktionen) 488 Präprozessor-Symbole definieren 488 Debug-Informationen in.ojbs aufnehmen 489 Überprüfung auf Stack-Überlauf 490 Speichermodell 491 Art der Fließkomma-Unterstützung 492 Compiler-Optimierungen 493 Ausnahmen / RTTI aktivieren 494 Datenausrichtung 495

13 C++ für Dummies Prozessor-Unterstützung Standard-Stack-Frame Vorkompilierte Header Anhang: Wie funktionieren diese virtuellen Funktionen überhaupt? Sex, Lügen und v tables Resümee Index

Inhaltsverzeichnis. Teil I Einführung in die C++-Programmierung 25. Einführung 19. Kapitel 1 Ihr erstes C++-Programm 27

Inhaltsverzeichnis. Teil I Einführung in die C++-Programmierung 25. Einführung 19. Kapitel 1 Ihr erstes C++-Programm 27 Inhaltsverzeichnis Einführung 19 Zu diesem Buch 19 Über die CD 19 Was ist C++? 20 Konventionen in diesem Buch 20 Wie dieses Buch aufgebaut ist 21 Das ist noch nicht alles 21 Teil I: Einführung in die C++-Programmierung

Mehr

Objektorientiertes Programmieren in C++

Objektorientiertes Programmieren in C++ Nicolai Josuttis Objektorientiertes Programmieren in C++ Von der Klasse zur Klassenbibliothek D-64289 Darmstadt ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California

Mehr

Stephen Randy öaris. c++ für Dummies. Übersetzung aus dem Amerikanischen Von Marcus Bäckmann WILEY- VCH. WILEY-VCH Verlag GmbH & Co.

Stephen Randy öaris. c++ für Dummies. Übersetzung aus dem Amerikanischen Von Marcus Bäckmann WILEY- VCH. WILEY-VCH Verlag GmbH & Co. Stephen Randy öaris c++ für Dummies Übersetzung aus dem Amerikanischen Von Marcus Bäckmann WILEY- VCH WILEY-VCH Verlag GmbH & Co. KGaA Inhaltsverzeichnis Über den Autor 7 Einführung 21 Zu diesem Buch 21

Mehr

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2 Vorwort zur zweiten Auflage 1 Vorwort zur ersten Auflage 2 1 Über dieses Buch 3 1.1 WarumdiesesBuch?... 3 1.2 Voraussetzungen...... 4 1.3 Systematik... 4 1.4 WieliestmandiesesBuch?... 6 1.5 ZugriffaufdieQuellenzudenBeispielen...

Mehr

Über den Autor 9 Widmung 10. Einführung 23

Über den Autor 9 Widmung 10. Einführung 23 Inhaltsverzeichnis Über den Autor 9 Widmung 10 Einführung 23 Über dieses Buch 23 Törichte Annahmen über den Leser 24 Wie dieses Buch organisiert ist 25 Teil I: Programmieren in C++ die ersten Schritte

Mehr

Über den Autor 9. Einführung 23. Zu diesem Buch 23 Icons in diesem Buch 26 Weiteres Material zum Buch 26 Wie geht s weiter? 27

Über den Autor 9. Einführung 23. Zu diesem Buch 23 Icons in diesem Buch 26 Weiteres Material zum Buch 26 Wie geht s weiter? 27 Inhaltsverzeichnis Über den Autor 9 Einführung 23 Zu diesem Buch 23 Icons in diesem Buch 26 Weiteres Material zum Buch 26 Wie geht s weiter? 27 Teil I Einführung in die C++-Programmierung 29 Kapitel 1

Mehr

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

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

Mehr

Objektorientierte Programmierung mite**

Objektorientierte Programmierung mite** mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++

Mehr

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14 Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv: der Prozessor 17

Mehr

in 21 Tagen Jesse Liberty Der optimale Weg - {Schritt für Schritt zum Programmierprofi

in 21 Tagen Jesse Liberty Der optimale Weg - {Schritt für Schritt zum Programmierprofi Jesse Liberty Deutsche Übersetzung: Petra Alm in 21 Tagen Der optimale Weg - {Schritt für Schritt zum Programmierprofi Einführung in die objektorientierte Programmierung Alle Programme getestet mit Microsoft

Mehr

Objektorientiert in C++

Objektorientiert in C++ Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Die С ++-Programmiersprache

Die С ++-Programmiersprache Bjarne Stroustrup Die С ++-Programmiersprache 3., aktualisierte und erweiterte Auflage Deutsche Übersetzung von Nicolai Josuttis und Achim Lörke raddison-wesley An imprint of Addison Wesley Longman, Inc.

Mehr

10.4 Konstante Objekte

10.4 Konstante Objekte 10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären

Mehr

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen Inhaltsverzeichnis Einleitung Kapitel 1 Grundlagen Entwicklung und Eigenschaften von C++ Objektorientierte Programmierung Erstellen eines C++- Programms Ein erstes C++-Programm Struktur einfacher C++-Programme

Mehr

Einleitung Grundlagen 23

Einleitung Grundlagen 23 Einleitung 21 1 Grundlagen 23 Entwicklung und Eigenschatten von C++ 24 Objektorientierte Programmierung 26 Erstellen eines C + + -Programms 28 Ein erstes C+ + -Programm 30 Struktur einfacher C++-Programme

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

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

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

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Ü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

Inhaltsverzeichnis. Vorwort

Inhaltsverzeichnis. Vorwort Inhaltsverzeichnis Vorwort XI 1 C/C++-Grundlagen 1 1.1 Einführung................................ 1 1.1.1 Entwicklungsgeschichte: Von K&R-C nach C++........ 1 1.1.2 Beispielprogramme.......................

Mehr

Inhalt. Vorwort Erste Grundlagen... 15

Inhalt. Vorwort Erste Grundlagen... 15 Inhalt Vorwort... 13 1 Erste Grundlagen... 15 1.1 Historisches... 15 1.2 Die Programmiersprache C++ und die Maschine... 16 1.3 Werkzeuge zum Programmieren... 18 1.3.1 Der Editor... 18 1.3.2 Der Compiler...

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einführung in C# Teil 3. Matthias Nübling Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.

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

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Objektorientierte Programmierung III

Objektorientierte Programmierung III Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Effektiv C++ 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers. Stephan Brumme, 21.Mai 2002

Effektiv C++ 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers. Stephan Brumme, 21.Mai 2002 1 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers Gliederung 2 1. Einführung 2. Der Umstieg von C nach C++ 3. Konstruktoren, Destruktoren und Zuweisungsoperatoren 4. Entwurf und Deklaration

Mehr

Arnold Willemer. Einstieg in C++ Galileo Press

Arnold Willemer. Einstieg in C++ Galileo Press Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 17 1.1.1 Start eines Programms 17 1.1.2 Eintippen, übersetzen, ausführen 18 1.1.3 Der Algorithmus 20 1.1.4 Die Sprache C++ 21

Mehr

Gliederung der Folien

Gliederung der Folien 1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung

Mehr

Mikrorechentechnik II. Klassen in C++

Mikrorechentechnik II. Klassen in C++ Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void

Mehr

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14 inhaltsverzeichnis Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv:

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

C++ für Spieleprogrammierer

C++ für Spieleprogrammierer Heiko Kalista C++ für Spieleprogrammierer 3., aktualisierte Auflage HANSER h *3k I lot Я ш Grundlagen 1 Einleitung 1 1.1.1 An wen richtet sich dieses Buch? 1 1.1.2 Welche Vorkenntnisse werden benötigt?

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

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21. Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,

Mehr

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14 C++ Teil 10 Sven Groß IGPM, RWTH Aachen 17. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 10 17. Dez 2014 1 / 14 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente

Mehr

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen

Mehr

Programmierkurs C/C++

Programmierkurs C/C++ Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71 ... Vorwort... 13 1... Einstieg in die Programmierung... 15 1.1... Programmieren... 15 1.1.1... Start eines Programms... 15 1.1.2... Eintippen, übersetzen, ausführen... 16 1.1.3... Der Algorithmus... 18

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 2: Einstieg in die OOP

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 2: Einstieg in die OOP C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 2: Einstieg in die OOP 1/27/2012 1 Di Datentypen Arrays Operatoren Parameter Überladen Heap / Stack Klassen (un)boxing Tag

Mehr

Programmierung in C/C++

Programmierung in C/C++ Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum

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

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Objektorientierte Programmierung mit Java

Objektorientierte Programmierung mit Java David J. Barnes Michael Kölling Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Übersetzt von Axel Schmolitzky, Universität Hamburg PEARSON Studium ein Imprint von Pearson

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

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil

Mehr

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse Ü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

Programmieren in Lua

Programmieren in Lua Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4 4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

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 2005/06 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

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

C/C++ KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk

C/C++ KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk C/C++ KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk Vorwort 23 Teil i Zur Einstimmung 29 Kapitel i A, B, C - die Geschichte von C und C++ 31 Kapitel 2 Allgemeine Konzeption einer Programmiersprache

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

Arnold Willemer. Einstieg in C++ Galileo Press

Arnold Willemer. Einstieg in C++ Galileo Press Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 15 1.1.1 Start eines Programms 15 1.1.2 Eintippen, übersetzen, ausführen 16 1.1.3 Der Algorithmus 18 1.1.4 Die Sprache C++ 19

Mehr

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Arnold Willemer C++ Der Einstieg. WlLEY

Arnold Willemer C++ Der Einstieg. WlLEY Arnold Willemer C++ Der Einstieg WlLEY altsverzeichnis Vorwort 13 1 Einstieg in die Programmierung 15 1.1 Programmieren 15 1.1.1 Start eines Programms 16 1.1.2 Eintippen, übersetzen, ausführen 17 1.1.3

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Überblick. Überblick zum weiteren Inhalt

Überblick. Überblick zum weiteren Inhalt Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Klassen. Kapitel Klassendeklaration

Klassen. Kapitel Klassendeklaration Kapitel 4 Klassen Wir kommen nun zu einem sehr wichtigen Aspekt der OOT: zu den Klassen. Eine Klasse ist eine vom Benutzer definierte Datenstruktur, eine Sammlung von Variablen (unterschiedlichen Typs)

Mehr

Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer:

Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer: Programmierung III Marc Ruberg 1 Pointer für Fortgeschrittene Arrays von Pointern ( Zeigervektoren ): long *zahlenptr[25]; char *strptr[1000]; Pointer auf Pointer: char **sp Zeiger auf Funktionen: Typ

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie

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

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

3. Exkurs in weitere Arten der Programmierung

3. Exkurs in weitere Arten der Programmierung 3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Logische Programmierung in Prolog Peter Sobe Objektorientierte Programmierung in C++ C++ ist eine objektorientierte

Mehr

Ulrich Kaiser C/C++ Von den Grundlagen zur professionellen Programmierung. Galileo Press

Ulrich Kaiser C/C++ Von den Grundlagen zur professionellen Programmierung. Galileo Press Ulrich Kaiser C/C++ Von den Grundlagen zur professionellen Programmierung Galileo Press Inhalt Vorwort 15 Danksagung 16 1 Einige Grundbegriffe 17 1.1 Algorithmus 19 1.2 Datenstruktur 23 1.3 Programm 25

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr