Objektorientiert in C++

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

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

C/C++ KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk

jetzt lerne ich C++ Das komplette Starterkit für den einfachen Einstieg in die Programmierung

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Inhaltsverzeichnis. Vorwort

Objektorientiertes Programmieren in C++

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Werner Achte rt DATA BECKER

C++ DAS KOMPLETTE STARTERKIT FÜR DEN EINFACHEN EINSTIEG IN DIE PROGRAMMIERUNG. Dirk Louis»C++«Jetzt bei. EXTRA: Mit kostenlosem E-Book.

Visual C Das umfassende Handbuch für Programmierer. Dirk Louis I &CK MB A VISUAU C++ ADDISON-WESLEY. An imprint of Pearson Education

C++-Entwicklung mit Linux

Arnold Willemer. Einstieg in C++ Galileo Press

Gliederung der Folien

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

C++ Einführung und professionelle Programmierung

Die Phase in der die Schablone vom Compiler erstmalig inspiziert wird (Template-Parameter sind noch unbekannt): lookup von non-dependent names

Arnold Willemer C++ Der Einstieg. WlLEY

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

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

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

Arnold Willemer. Einstieg in C++ Galileo Press

Grundkurs Programmieren in Java

Wochenvorschau Tag 1 Erste Schritte in C# Tag 2 Die Visual C#-Umgebung

1 Einige Grundbegriffe Einführung in die Programmierung Ausgewählte Sprachelemente von C Arithmetik...

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Programmierung in C/C++

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

C/C++ - Kompendium - PDF

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Mikrorechentechnik II. Klassen in C++

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

Objektorientierte Programmierung mit C++ SS 2007

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Grundkurs C++ IDE Klassenhierarchien

Grundkurs Programmieren in Java

Grundkurs C++ IDE Klassenhierarchien

Repetitorium Informatik (Java)

Das Einsteigerseminar Objektorientierte Programmierung in Java

Die С ++-Programmiersprache

Einstieg in die Informatik mit Java

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Überblick. Überblick zum weiteren Inhalt

Jürgen Wolf. C++ von A bis Z. Das umfassende Handbuch. Galileo Press

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

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

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

1. Organisatorisches, Aufbau eines Computers, Erstellung eines Programmes, Algorithmen und Programme, Grundlagen der Zahlendarstellung

Objektorientierung. Helmut Herold Michael Klar Susanne Klar ^-ADDISON-WESLEY. An imprint of Pearson Education

C++ - Objektorientierte Programmierung Vererbung

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

Grundkurs Programmieren in Java

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

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

Grundkurs Software- Entwicklung mit C++

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Ulrich Kaiser Christoph Kecher C/C++ Von den Grundlagen zur professionellen Programmierung. в.. Galileo Computing

Objektorientierte Programmierung III

Objektorientierte Programmierung

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

7. Übung Informatik II - Objektorientierte Programmierung

Objektorientiertes Programmieren

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

Objektorientierte Programmierung in Java

Einstieg in die Informatik mit Java

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

Vererbung, Polymorphie

Programmierkurs C++ Templates & STL (1/2)

Überblick. 5. Objekt und Klasse, Elementfunktionen

Lösung der OOP-Prüfung WS12/13

Programmieren mit Java

Programmieren in C++ Vererbung

С als erste Programmiersprache

Inhaltsverzeichnis. Heiko Kalista. C++ für Spieleprogrammierer. ISBN (Buch): ISBN (E-Book):

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Programmierung und Angewandte Mathematik

Stichwortverzeichnis C++

Praxisbuch Objektorientierung

Jürgen Wolf. C++ von A bis Z. Das umfassende Handbuch. Galileo Press

Einführung in die Programmierung mit C++

Prof. W. Henrich Seite 1

Objektorientierte Programmierung mit Java

Einstieg in die Informatik mit Java

Objektorientierte Programmierung und Klassen

Objektorientiertes Programmieren mit C++ für Fortgeschrittene

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung

C für Java-Programmierer

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

Programmieren in Java

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

Grundkurs Programmieren in Java

Vorwort 21. Teil I: Einführung in C++ 25

Inhaltsverzeichnis. Heiko Kalista. C++ für Spieleprogrammierer ISBN: Weitere Informationen oder Bestellungen unter

Tom Swan. C++ lernen. Eine systematische Einführung in die objektorientierte

Komplette EclipseUmgebungaufCD. Studienausgabe

Transkript:

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 Compiler-Wahl 14 C++ ist eine deklarative Sprache 15 1.2 Das erste Programm 17 Kommentare 18 Präprozessor-Direktiven 18 Namensräume 20 Deklarationen und Definitionen 21 Die Eintrittsfunktion main() 22 Anweisungen 22 Erstellung (Build) 23 1.3 Variablen und Datentypen 23 Literale 23 Variablen 24 Datentypen 27 1.4 Operatoren und Ausdrücke 31 Arithmetische Operatoren 32 In- und Dekrementoperator 33 Zuweisungen 34 Vergleichende Operatoren 34 Logische Operatoren 35 Bit-Operatoren 36 Datenzugriff 39 Sonstige Operatoren 40 Priorität 41 1.5 Kontrollstrukturen 42 Verzweigungen 42 Schleifen 46 1.6 Funktionen 49 Definition 50 Funktionen verlassen 51 Überladung 52 1.7 Arrays 53 1.8 Aufzählungen 55 Objektorientiert in C++ 5

1.9 Strukturen 57 1.10 Unions 59 1.11 Klassen 60 1.12 Zeiger und Referenzen 62 Zeiger 62 Referenzen 68 Dynamische Speicherbelegung 69 Zeiger und Referenzen als Parameter 73 1.13 Strings 75 Die Klasse string 76 C-Strings 79 Escape-Sequenzen 80 Umwandlungen zwischen Strings und Zahlen 80 1.14 Ein- und Ausgabe 81 Die Konsole 81 Dateien 85 Befehlszeilenargumente 87 1.15 Präprozessor-Direktiven 87 #include - Header-Dateien einbinden 88 #define - Makros und Konstanten definieren 88 #ifdef - Bedingte Kompilierung 88 Sonstige Direktiven 90 2 Warum OOP? - Philosophie und Motivation 91 2.1 Die Klasse als Datentyp 91 Vom datenorientierten Ansatz... 92... zum objektorientierten Ansatz 94 2.2 Das Objekt als dienstbarer Geist 98 Wie sind OOP-Objekte beschaffen? 99 Objekte und Klassen 99 2.3 Die Klasse als Zentrum der objektorientierten Programmierung 102 Abgeschlossenheit 103 Sichere Verwendung 104 Kapselung 107 2.4 Konzepte, die auf der Klasse aufbauen 107 Modularität 108 Vererbung 108 Polymorphie 118 2.5 Objektorientierte Terminologie 125 3 Die Klasse: Syntax 127 3.1 Klassendefinition 127 Zugriffsrechte 128 Die Klasse als Gültigkeitsbereich 130 Implementierungs- und Header-Datei 131

3.2 Membervariablen 135 Initialisierung 135 Statische Membervariablen 137 Konstante Membervariablen 138 Eingebettete Objekte 138 3.3 Memberfunktionen 140 Definition innerhalb der Klassendefinition 140 Definition außerhalb der Klassendefinition 142 Der this-zeiger 143 Statische Memberfunktionen 144 Konstante Memberfunktionen 146 Virtuelle Memberfunktionen 147 Überladung 147 3.4 Die Konstruktoren 147 Definition und Aufruf 148 Ersatz- und Standardkonstruktoren 149 Arrays von Objekten 151 3.5 Der Destruktor 153 3.6 Typdefinitionen in Klassen 158 Aufzählungen in Klassen 159 Verschachtelte Klassen 159 4 Die Klasse: Design 161 4.1 Syntax revised 162 4.2 Design-Techniken 165 const-memberfunktionen 165 Get-/Set-Memberfunktionen 166 Überladung kontra Vorgabeargument 168 private- und protected-konstruktoren 169 4.3 Design-Elemente 170 Friends - unkomplizierte Freunde 170 Überladung von Operatoren 171 Konvertierungskonstruktor und -memberfunktionen 176 4.4 Design-Patterns 180 Funktionensammlungen 180 Singleton 181 5 Die Klasse: Objekte 185 5.1 Erzeugen 185 Implizite Objekterzeugung 185 Explizite Objekterzeugung 186 Vorgang der Instanzbildung 188 5.2 Vergleichen 188 Gleichheit 189 Größenvergleiche 190 Objektorientiert in C++ 7

5.3 Kopieren 194 Flaches und tiefes Kopieren 195 Kopierkonstruktor für tiefes Kopieren 197 Zuweisungsoperator für tiefes Kopieren 198 5.4 Ausgeben 199 Objekte in Strings umwandeln 199 Die Stream-Operatoren überladen 200 5.5 Auflösen 202 5.6 Zeiger auf Objekte 203 6 Vererbung oder Komposition 207 6.1 Das Prinzip der Vererbung 207 Der grundlegende Mechanismus 208 Die Syntax 209 Wann ist Vererbung gerechtfertigt? 210 Einige wichtige Fakten 212 6.2 Das Basisklassen-Unterobjekt 212 Zugriff 213 Instanzbildung 217 6.3 Die Zugriffsspezifizierer für die Vererbung 219 6.4 Verdecken, überschreiben und überladen 221 Verdeckung 222 Überladung 223 Überschreibung 223 6.5 Der Destruktor 223 6.6 Mehrfachvererbung 224 Namenskonflikte bei der Mehrfachvererbung 224 Virtuelle Basisklassen 225 Mehrfachvererbung und Speicherauslegung 226 6.7 Vererbung und objektorientiertes Design 227 Virtueller Destruktor 227 Vererbung von Schnittstelle und Implementierung 227 Beziehungen zwischen Klassen 229 7 Polymorphie, die hohe Schule 231 7.1 Grundprinzip und Implementierung 231 7.2 Späte und frühe Bindung 234 Frühe Bindung 235 Späte Bindung 236 Regeln für die Überschreibung 237 7.3 Generische Programmierung 239 Mit Polymorphie planen 239 Basisklassen-Arrays 244 Basisklassenparameter 245

7.4 Typidentifizierung zur Laufzeit (RTTI) 248 Virtuelle Memberfunktionen 249 Umwandlung mit dynamic_cast 250 Der typeid()-operator 253 7.5 Abstrakte Klassen 255 Rein virtuelle Funktionen 256 Abstrakte Klassen 256 8 Templates 259 8.1 Grundprinzip 260 8.2 Funktionentemplates 261 Syntax 261 Überladung 261 8.3 Klassentemplates 262 Syntax 262 Memberfunktionen in Klassentemplates 263 8.4 Instanziierung und Spezialisierung 264 Implizite Instanziierung 265 Explizite Instanziierung 266 Explizite Spezialisierung 266 8.5 Genauer hingeschaut: die Template-Parameter 267 class oder typename 267 Parametervielfalt 267 9 Exception-Behandlung 269 9.1 Konzeption und Zielsetzung 270 Kein Weg zurück 271 Behandeln von Exceptions 272 9.2 Aufbau einer Exception-Behandlung 272 9.3 Exceptions abfangen 274 9.4 Exceptions auslösen 277 9.5 Programmfluss und Exception-Behandlung 278 Wo wird der Programmfluss nach einer Exception fortgesetzt? 278 Die Problematik des gestörten Programmflusses 279 9.6 Die Exception-Klassen 281 9.7 Eigene Exceptions 282 9.8 Funktionen zur Unterstützung der Exception-Behandlung 284 10 Objektorientiertes Design und UML 285 10.1 Moderne Software-Entwicklung 285 Objektorientiert in C++ 9

10.2 Fallbeispiel - Temperaturregelung 287 Anforderungsspezifikation 288 Die Analyse-Phase 288 Die Design-Phase 291 Implementierung 293 A Die Standardbibliothek 295 A.l Die C-Standardbibliothek 295 <cassert> 295 <cctype> 295 <cerrno> 296 <cfloat> 297 <ciso646> 298 <climits> 298 <clocale> 299 <cmath> 299 <csetjmp> 300 <csignal> 301 <cstdarg> 302 <cstddef> 303 <cstdio> 304 <cstdlib> 307 <cstring> 309 <ctime> 311 <cwchar> 312 <cwctype> 313 A.2 Die C++-Standardbibliothek 313 Die Container-Klassen 313 Der Gebrauch von Iteratoren <iterator> 325 Die Algorithmen <algorithm> 328 Funktionsobjekte <functional> 333 Die Stream-Klassen 338 Die String-Klassen 341 Sonstige Klassen 341 B Compiler 347 B.l Die Konsolen-Compiler 347 Borland C++ 5.5-Compiler 347 GNU-Compiler g++ 350 B.2 Die Entwicklungsumgebungen 352 Visual C++ 2005 Express Edition 352 Turbo C++ 354 Index 359 10