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

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

Arnold Willemer. Einstieg in C++ Galileo Press

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

C++ für Spieleprogrammierer

Inhalt. Vorwort Erste Grundlagen... 15

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

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

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

Arnold Willemer C++ Der Einstieg. WlLEY

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

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Objektorientiertes Programmieren in C++

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

Objektorientiert in C++

Arnold Willemer. Einstieg in C++ Galileo Press

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

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

Grundkurs Software- Entwicklung mit C++

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

Einleitung Grundlagen 23

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

C programmieren. Jürgen Wolf

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Vorwort. Teil I: Grundkurs 1. 1 Keine Angst vor C++! 3

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

Inhaltsverzeichnis. Vorwort

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

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

Objektorientierte Programmierung in Java

Dirk Louis. c++ Das komplette Starterkit für den einfachen Einstieg in die Programmierung. 2. Auflage HANSER

Effektiv Programmieren in С und C++

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

Das Einsteigerseminar Objektorientierte Programmierung in Java

Objektorientierte Programmierung mite**

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

Programmierung in C/C++

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

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

André Willms, C++: Eine kompakte Einführung, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Werner Achte rt DATA BECKER

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

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

Die С ++-Programmiersprache

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

Java als erste Programmiersprache

Walter Saumweber C++ Programmierhandbuch. ntwickier.press

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Gliederung der Folien

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

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Klassen. Kapitel Klassendeklaration

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

C für Java-Programmierer

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

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

C++ für Spieleprogrammierer

C++ - Objektorientierte Programmierung Polymorphie

Inhaltsverzeichnis. Vorwort.11

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

C für Java- Programmierer

Überblick. 5. Objekt und Klasse, Elementfunktionen

C/C++ KOMPENDIUM Einführung Arbeitsbuch Nachschlagewerk

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Praxis der Programmierung

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Überblick. R.Grossmann / P. Sobe 1

Objektorientiertes Programmieren

Java-Grundkurs für Wirtschaftsinformatiker

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

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

Inhaltsverzeichnis. jetzt lerne ich. Vorwort 15

Vorlesungsprüfung Programmiersprache 1

Die C++-Programmiersprache

Programmierkurs C/C++

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

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

Programmierung mit C Zeiger

OMSI / Teil 1 / C++ Andreas Blunk. 5. April 2006, Berlin

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

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Repetitorium Informatik (Java)

Objektorientierte Programmierung II

C-Programmierung lernen

Objektorientierte Programmierung in Java

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

back() 341, 342 begin() 317, 337 binary_search() 326 bool 49 boolalpha 312 case 73 cerr 80 char 39

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

jetzt lerne ich тш^шш Visual C# 2008 Das komplette Starterkit für den erfolgreichen Einstieg Markt+Technik

Bernd ШШ^^ШШШШ. ШШшШШШШ. Das KBasic Buch. Handbuch zum Entwickeln von KBasic-Anwendungen. Für Windows, Mac und Linux

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

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

RO-Tutorien 17 und 18

Transkript:

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 Visual C++ und Borland C++-Builder Markt&Technik Verlag

Inhaltsverzeichnis Was ist neu in der dritten Auflage? 17 Über den Autor 19 Einführung 19 An wen sich dieses Buch wendet 19 Konventionen 20 Woche 1: 21 Auf einen Blick 21 Hinweis für C-Programmierer 22 Aufbau der ersten Woche 22 Tag 1 Erste Schritte 23 Ein kurzer geschichtlicher Abriß der Programmiersprache C++ 24 Programme 25 Probleme lösen 25 Wie sich C++ entwickelt hat 30 Sollte ich zuerst C lernen? 30 C++ und Java 30 Der ANSI-Standard 31 Vorbereitungen 31 Ihre Entwicklungsumgebung 32 Quellcode kompilieren 33 Ein ausführbares Programm mit dem Linker erstellen 34 Der Entwicklungszyklus 34 HELLO.CPP - Ihr erstes C++-Programm 35 Die ersten Schritte mit Visual C++ 6 38 Fehler zur Kompilierzeit 39 Zusammenfassung 40 5

Inhaltsverzeichnis Fragen und Antworten 40 Workshop 41 Tag 2 Die Bestandteile eines C + +-Programms 43 Ein einfaches Programm 44 Eine kurze Einführung in cout : 46 Kommentare 48 Funktionen 51 Funktionen verwenden 52 Zusammenfassung 54 Fragen und Antworten 55 Workshop 55 Tag 3 Variablen und Konstanten 57 Was ist eine Variable? 58 Variablen definieren 62 Mehrere Variablen gleichzeitig erzeugen 65 Werte an Variablen zuweisen 65 typedef 67 Wann verwendet man short und wann long? 68 Zeichen 71 Konstanten 73 Aufzählungstypen 75 Zusammenfassung 78 Fragen und Antworten 79 Workshop 80 Tag 4 Ausdrücke und Anweisungen 83 Anweisungen 84 Whitespace 84 Blöcke und Verbundanweisungen 85 Ausdrücke 85 Operatoren 87 Zusammengesetzte Operatoren 91 Inkrementieren und Dekrementieren 92 Rangfolge der Operatoren 94 6

msams Verschachtelte Klammern 95 Wahrheitswerte 96 Die if-anweisung 98 Geschweifte Klammern in verschachtelten if-anweisungen... 106 Logische Operatoren 109 Verkürzte Prüfung 110 Rangfolge der Vergleichsoperatoren 111 Mehr über Wahr und Unwahr 112 Der Bedingungsoperator 113 Zusammenfassung 114 Fragen und Antworten 115 Workshop 115 Tag 5 Funktionen 119 Was ist eine Funktion? 120 Rückgabewerte, Parameter und Argumente 121 Funktionen deklarieren und definieren 122 Ausführung von Funktionen 127 Lokale Variablen 127 Globale Variablen 130 Globale Variablen: mit Vorsicht zu genießen 131 Mehr zu den lokalen Variablen 132 Anweisungen in Funktionen 134 Funktionsargumente 134 Parameter sind lokale Variablen 135 Rückgabewerte 137 Standardparameter 140 Funktionen überladen 142 Besondere Funktionen 146 Arbeitsweise von Funktionen - ein Blick hinter die Kulissen.. 153 Zusammenfassung 158 Fragen und Antworten 159 Workshop 160 7

Inhaltsverzeichnis Tag 6 Klassen 163 Neue Typen erzeugen 164 Klassen und Elemente 165 Auf Klassenelemente zugreifen 168 Private und Public 169 Klassenmethoden implementieren 175 Konstruktoren und Destruktoren 178 Konstante Elementfunktionen 183 Schnittstelle und Implementierung 184 Klassendeklarationen und Methodendefinitionen plazieren... 188 Inline-Implementierung 189 Klassen als Datenelemente einer Klasse 192 Strukturen 196 Zusammenfassung 197 Fragen und Antworten 198 Workshop 199 Tag 7 Mehr zur Programmsteuerung 203 Schleifenkonstruktionen 204 while-schleifen 206 do...while-schleifen 214 do...while 215 for-schleifen 217 Summierende Schleifen 227 switch-anweisungen 230 Zusammenfassung 237 Fragen und Antworten 238 Workshop 238 Woche 1: 241 Die Woche im Rückblick 247 Woche 2: 249 Auf einen Blick 249 Aufbau der zweiten Woche 250 8

8 Zeiger 251 Was ist ein Zeiger? 252 Warum man Zeiger verwendet 261 Stack und Heap 262 Speicherlücken 266 Objekte auf dem Heap erzeugen 267 Objekte löschen 267 Auf Datenelemente zugreifen 269 Datenelemente auf dem Heap 270 Der this-zeiger 274 Vagabundierende Zeiger 275 Konstante Zeiger 279 Zeigerarithmetik 282 Zusammenfassung 285 Fragen und Antworten 286 Workshop 286 9 Referenzen 289 Was ist eine Referenz? 290 Der Adreßoperator bei Referenzen 291 Was kann man referenzieren? 295 Null-Zeiger und Null-Referenzen 297 Funktionsargumente als Referenz übergeben 297 Header und Prototypen von Funktionen 303 Mehrere Werte zurückgeben 304 Übergabe als Referenz der Effizienz wegen 307 Wann verwendet man Referenzen und wann Zeiger? 316 Referenzen und Zeiger mischen 317 Referenzen auf nicht mehr vorhandene Objekte 318 Referenzen auf Objekte im Heap zurückgeben 320 Wem gehört der Zeiger? 323 Zusammenfassung 324 Fragen und Antworten 324 Workshop. 325

Inhaltsverzeichnis Tag 10 Funktionen -weiterführende Themen 327 Überladene Elementfunktionen 328 Standardwerte 330 Standardwerte oder überladene Funktionen? 333 Der Standardkonstruktor 333 Konstruktoren überladen 334 Objekte initialisieren 336 Der Kopierkonstruktor 337 Operatoren überladen 342 Umwandlungsoperatoren 362 Zusammenfassung 367 Fragen und Antworten 368 Workshop 369 Tag 11 Vererbung 371 Was ist Vererbung? 372 Private und Protected 376 Konstruktoren und Destruktoren 379 Funktionen überschreiben 387 Virtuelle Methoden 393 Zusammenfassung 406 Fragen und Antworten 407 Workshop 408 Tag 12 Arrays und verkettete Listen 411 Was ist ein Array? 412 Array-Elemente 413 Über das Ende eines Array schreiben 414 Fence Post Errors 417 Arrays initialisieren 418 Arrays deklarieren 419 Arrays von Objekten 421 Mehrdimensionale Arrays 423 Ein Wort zum Speicher 425 Arrays von Zeigern 426 Arrays auf dem Heap 428 10

Zeiger auf Arrays und Arrays von Zeigern 428 Zeiger und Array-Namen 429 Arrays im Heap löschen 431 char-arrays 432 strcpyo und strncpyo 434 String-Klassen 436 Verkettete Listen und andere Strukturen 444 Fallstudie zu den verketteten Listen 445 Die einzelnen Komponenten 445 Was haben wir gelernt? 455 Array-Klassen 456 Zusammenfassung 456 Fragen und Antworten 457 Workshop 458 Tag 13 Polymorphie 461 Probleme bei der einfachen Vererbung 462 Mehrfachvererbung 469 Abstrakte Datentypen (ADTs) 487 Das Überwachungsmuster 501 Zusammenfassung 503 Fragen und Antworten 503 Workshop 505 Tag 14 Spezielle Themen zu Klassen und Funktionen 507 Statische Datenelemente 508 Statische Elementfunktionen 514 Zeiger auf Funktionen 517 Zeiger auf Elementfunktionen 532 Zusammenfassung 537 Fragen und Antworten 538 Workshop 539 Woche 2: 541 11

Inhaltsverzeichnis Woche 3: 553 Auf einen Blick 553 Aufbau der dritten Woche 553 Tag 15 Vererbung - weiterführende Themen 555 Einbettung (Containment) 556 Vererbung, Einbettung und Delegierung 571 Delegierung 572 Private Vererbung 582 Friend-Klassen 591 Friend-Funktionen 601 Friend-Funktionen und das Überladen von Operatoren 602 Überladung des Ausgabe-Operators 607 Zusammenfassung 612 Fragen und Antworten 612 Workshop 613 Tag 16 Streams 617 Streams - ein Überblick 618 Streams und Puffer 621 Standard-E/A-Objekte 622 Umleitung 622 Eingabe mit ein 623 Weitere Elementfunktionen von ein 629 Ausgabe mit cout 638 Verwandte Funktionen 638 Manipulatoren, Flags und Formatierungsanweisungen 641 Streams und die Funktion printf() 645 Eingabe und Ausgabe für Dateien 650 ofstream 650 Binärdateien und Textdateien 655 Befehlszeilenverarbeitung 658 Zusammenfassung 662 Fragen und Antworten 663 Workshop 664 12

» Tag 17 Namensbereiche 665 Zum Einstieg 666 Funktionen und Klassen werden über den Namen aufgelöst.. 667 Namensbereiche einrichten 671 Namensbereiche einsetzen 674 Das Schlüsselwort using 676 Aliase für Namensbereich 680 Der unbenannte Namensbereich 681 Der Standardnamensbereich std 682 Zusammenfassung 683 Fragen und Antworten 685 Workshop 685 Tag 18 Objektorientierte Analyse und objektorientiertes Design 687 Ist C++ objektorientiert? 688 Modelle erstellen 689 Software-Design: Die Modelliersprache 690 Software-Design: die Vorgehensweise 691 Konzeptionierung 694 Analyse der Anforderungen 694 Design 709 Zusammenfassung 727 Fragen und Antworten 727 Workshop 728 Tag 19 Templates 731 Was sind Templates? 732 Parametrisierte Typen 732 Definition von Templates 733 Template-Funktionen 740 Templates und Friends 740 Template-Elemente 749 Die Standard Template Library 764 Container 765 Sequentielle Container 765 Q

Assoziative Container 777 Algorithmenklassen 781 Zusammenfassung 785 Fragen und Antworten 786 Workshop 787 Tag 20 Exceptions und Fehlerbehandlung 789 Bugs, Fehler, Irrtümer und Code Rot 790 Exceptions 792 try-blöcke und catch-blöcke einsetzen 799 Datenelemente in Exceptions und Benennung von Exception-Objekten 806 Exceptions und Templates 814 Exceptions ohne Fehler 817 Fehler und Fehlersuche mit dem Debugger 818 Zusammenfassung 820 Fragen und Antworten 821 Workshop 822 Tag 21 So geht's weiter 825 Präprozessor und Compiler 826 Das Zwischenformat ansehen 826 Die Anweisung #define 827 Schutz vor Mehrfachdeklarationen 830 Makrofunktionen 831 Inline-Funktionen 834 String-Manipulation 836 Vordefinierte Makros 838 assert 838 Bitmanipulation 856 Stil 863 Wie geht es weiter? 869 Zusammenfassung 870 Fragen und Antworten 871 Workshop 872 Woche 3: 875 14

Anhang A Operatorvorrang 889 Anhang B C + + -Schlüsselwörter 891 Anhang C Binäres und hexadezimales Zahlensystem 895 Andere Basen 896 Betrachtungen zu den Basen der Zahlensysteme 897 Das Binärsystem. 899 Hexadezimalsystem 901 Anhang D Anworten und Lösungen 905 Tag 1 906 Tag 2 906 Tag 3 908 Tag 4 910 Tag 5 912 Tag 6 916 Tag 7 920 Tag 8 923 Tag 9 925 Tag 10 929 Tag 11 935 Tag 12 937 Tag 13 938 Tag 14 941 Tag 15 948 Tag 16 954 Tag 17 957 Tag 18 958 Tag 19 963 Tag 20 970 Tag 21 978 Anhang E Die CD zum Buch 983 Stichwortverzeichnis 985 15