Inhaltsverzeichnis jetzt lerne ich Vorwort 17 1 Ein wenig Theorie vorab 21 1.1 Was ist ein Programm? 22 1.2 Wie wird ein Programm erstellt? 24 1.3 C, C++ und das.net Framework 26 1.3.1 Von C zu C++ 26 1.3.2 C++ und das.net Framework 28 1.3.3 Das.NET Framework 29 1.4 Der C++-Compiler, das Konzept der Headerdateien und die.net-namespaces 34 1.4.1 Der Compiler ist ein strenger Lehrer 34 1.4.2 Definition und Deklaration 35 1.4.3 Das Konzept der Headerdateien 36 1.4.4 Namenspaces 38 1.4.5 Die Elemente der.net Framework-Bibliothek 40 1.5 Visual C++ 41 1.5.1 IDE 41 1.5.2 RAD 43 1.6 Zusammenfassung 45 1.7 Fragen und Antworten 46 1.8 Übung 47 7
jetzt lerne ich Inhaltsverzeichnis 2 Das erste Programm 49 2.1 Am Anfang steht immer ein Projekt 50 2.1.1 Übung 1: Ein eigenes Projekt anlegen 50 2.1.2 Übung 2: Das Projekt speichern 53 2.1.3 Übung 3: Das Programm ausführen 53 2.2 Quelltext der erste Kontakt! 54 2.2.1 Die Programmdatei 55 2.2.2 Form1.h und Form1.h 64 2.2.3 namespace und using 68 2.3 Programmieren in der RAD-Umgebung 69 2.3.1 Die RAD-Umgebung 69 2.3.2 Komponenten aufnehmen 72 2.3.3 Komponenten konfigurieren 74 2.3.4 Ereignisse bearbeiten 76 2.3.5 Eigenschaften zur Laufzeit ändern 77 2.3.6 Die Eigenschaft Name 79 2.4 Was tut sich auf der Festplatte? 79 2.5 Anwendungen von außerhalb Visual C++ aufrufen 80 2.6 Zusammenfassung 82 2.7 Fragen und Antworten 82 2.8 Übungen 83 3 C++-Grundkurs: Datenverarbeitung 85 3.1 Konsolenanwendungen 86 3.1.1 Das Grundgerüst 86 3.1.2 Konsolenanwendungen in Visual C++ 88 3.1.3 Konsolenanwendungen außerhalb von Visual C++ ausführen 90 3.2 Datentypen und Variablen 92 3.2.1 Der»Wert«der Variablen 94 3.2.2 Variablen bei der Definition initialisieren 95 3.2.3 Werte von Variablen abfragen 95 3.2.4 Die elementaren Datentypen 96 3.2.5 Strings 98 3.2.6 Typumwandlung 105 3.2.7 C++ für Pedanten 109 3.3 Variablen kontra Konstanten 110 3.4 Operatoren 111 3.4.1 Die verschiedenen Operatoren 112 3.4.2 Verwendung der trigonometrische Methoden 114 8
Inhaltsverzeichnis jetzt lerne ich 3.4.3 Division 116 3.5 Objekte und Klassen 117 3.5.1 C++ für Philosophen 117 3.5.2 Klassen definieren 118 3.5.3 Mit Klassen programmieren 127 3.6 Arrays 133 3.6.1 Arrays definieren 133 3.6.2 Auf Array-Elemente zugreifen 134 3.6.3 Arrays initialisieren 135 3.7 Die vordefinierten.net-klassen 136 3.8 Zusammenfassung 136 3.9 Fragen und Antworten 137 3.10 Übungen 138 4 C++-Grundkurs: Modularisierung und Programmsteuerung 141 4.1 Modularisierung durch Klassen und Funktionen 141 4.1.1 Teilprobleme in Funktionen implementieren I 143 4.1.2 Teilprobleme in Funktionen implementieren II 144 4.1.3 Teilprobleme in Klassen implementieren 146 4.1.4 Eigene Bibliotheken 152 4.2 Kontrollstrukturen 156 4.2.1 Bedingungen: if-else 157 4.2.2 Bedingungen und boolesche Ausdrücke 157 4.2.3 Mehrfachbedingungen: switch 159 4.2.4 Die Schleifen for, while, do und for each 161 4.2.5 Schleifenvariablen und Abbruchbedingungen 163 4.2.6 Schleifen und Arrays 164 4.2.7 Zauber mit Schleifen, Zahlen und Kaninchen 165 4.2.8 Änderung des Programmflusses 166 4.3 Fehlerbehandlung durch Ausnahmen 167 4.3.1 Ausnahmen abfangen 167 4.3.2 Mehrere catch-blöcke 171 4.3.3 Die Ausnahme-Parameter 172 4.3.4 Eigene Ausnahmen 173 4.4 Selbstkontrolle 173 4.5 Zusammenfassung 176 4.6 Fragen und Antworten 177 4.7 Übungen 178 9
jetzt lerne ich Inhaltsverzeichnis 5 C++-Grundkurs: OOP-Vertiefung 181 5.1 Statische und nicht-statische Klassenelemente 182 5.1.1 Nicht-statische Elemente 182 5.1.2 Statische Elemente 185 5.2 Methoden 187 5.2.1 Definition von Methoden 188 5.2.2 Rückgabewerte von Methoden return 188 5.2.3 Parameterübergabe 189 5.2.4 Überladung 193 5.3 Zugriff und Zugriffbeschränkung 195 5.3.1 Gültigkeit 195 5.3.2 Lokale Variablen und Verdeckung 195 5.3.3 Die Zugriffsmodifizierer 196 5.4 Eigenschaften 198 5.5 Vererbung 203 5.5.1 Der grundlegende Mechanismus 203 5.5.2 Der Zugriffsmodifizierer protected 208 5.5.3 Aufruf des Basisklassenkonstruktors 210 5.5.4 Verbergen und Überschreiben geerbter Methoden 212 5.6 Zusammenfassung 215 5.7 Fragen und Antworten 216 5.8 Übungen 216 6 C++-Grundkurs: OOP-Ausblick 217 6.1 Polymorphie 218 6.2 Object 221 6.2.1 ToString() überschreiben 221 6.2.2 Boxing 223 6.3 Schnittstellen (Interfaces) 224 6.3.1 Schnittstellen definieren 224 6.3.2 Schnittstellen implementieren 224 6.4 Zusammenfassung 228 6.5 Fragen und Antworten 228 6.6 Übungen 229 7 C++-Grundkurs: E/A und Dateien 231 7.1 Schreiben auf die Konsole 231 7.1.1 Write(), WriteLine() 231 7.1.2 Formatierte Ausgabe 232 7.2 Schreiben in Dateien 235 10
Inhaltsverzeichnis jetzt lerne ich 7.3 Lesen von Tastatur 237 7.4 Lesen aus Dateien 238 7.5 Befehlszeilenargumente 241 7.6 Zusammenfassung 243 7.7 Fragen und Antworten 243 7.8 Übung 244 8 C++-Grundkurs: Nützliche.NET-Klassen 245 8.1 Datum und Uhrzeit 245 8.1.1 Datum und Uhrzeit ermitteln 245 8.1.2 Datums- und Zeitangaben manipulieren 246 8.1.3 Datums- und Zeitangaben ausgeben 247 8.1.4 Zeitspannen messen 248 8.2 Zufallszahlen 249 8.3 Die Auflistungsklassen 251 8.3.1 Historisches 252 8.3.2 Die Auflistungen im Vergleich 253 8.3.3 ArrayList 254 8.3.4 List<T> 257 8.3.5 Dictionary<TKey, TValue> 259 8.3.6 Stack<T> 260 8.4 Zusammenfassung 262 8.5 Fragen und Antworten 262 8.6 Übungen 262 9 Ein Rundgang durch Visual C++ 263 9.1 Tour-Start 263 9.2 Die Projektverwaltung 264 9.2.1 Vom Nutzen der Projektverwaltung 264 9.2.2 Ein Projekt anlegen 264 9.2.3 Projekte speichern, schließen und öffnen 265 9.2.4 Mit Projekten arbeiten 265 9.2.5 Projekteigenschaften festlegen 267 9.2.6 Projektmappen 269 9.3 Der Editor 273 9.3.1 Syntax-Hervorhebung 274 9.3.2 Automatische Einrückung 274 9.3.3 IntelliSense 274 9.3.4 Zusammenarbeit mit Compiler und Debugger 275 9.3.5 Weitere Funktionen 275 11
jetzt lerne ich Inhaltsverzeichnis 9.4 Der Windows Forms-Designer 275 9.4.1 Komponenten hinzufügen und löschen 276 9.4.2 Komponenten auswählen 276 9.4.3 Komponenten dimensionieren 277 9.4.4 Komponenten ausrichten 277 9.4.5 Komponenten kopieren 278 9.4.6 Das Eigenschaftenfenster 278 9.5 Der Compiler 279 9.6 Der Debugger 281 9.6.1 Fehler und Debugging 281 9.6.2 Ablauf von Debug-Sitzungen 282 9.6.3 Vorbereitungen zum Debuggen 283 9.6.4 Programm in Debugger laden und starten 283 9.6.5 Programm anhalten 284 9.6.6 Programm schrittweise ausführen 285 9.6.7 Die Debug-Fenster 286 9.7 Hilfe 288 9.7.1 Die Online-Hilfe 288 9.7.2 Die lokale Hilfe 291 9.8 Konfiguration 293 9.9 Zusammenfassung 293 9.10 Fragen und Antworten 294 9.11 Übung 294 10 Windows-Anwendungen: Formulare und Steuerelemente 295 10.1 Was sind Windows-Anwendungen? 295 10.2 Fenster, Hauptfenster und Formulare 298 10.2.1 Nachgefragt, was ist eigentlich ein Fenster? 298 10.2.2 Das Fenster konfigurieren 299 10.2.3 Anwendungssymbol 305 10.3 Steuerelemente 308 10.3.1 Programmieren mit Steuerelementen 308 10.3.2 Beschriftungsfelder 309 10.3.3 Schaltflächen 312 10.3.4 Kontrollkästchen 313 10.3.5 Optionsfelder und GroupBox 314 10.3.6 Eingabefelder 315 10.3.7 Listenfelder 316 10.3.8 Kombinationsfelder 318 10.3.9 Weitere Steuerelemente und weitere Informationen 319 12
Inhaltsverzeichnis jetzt lerne ich 10.4 Ereignisbehandlung 319 10.4.1 Ereignisbehandlung einrichten 320 10.4.2 Welches Ereignis soll ich abfangen und bearbeiten? 321 10.5 Zusammenfassung 322 10.6 Fragen und Antworten 323 10.7 Übung 324 11 Windows-Anwendungen: Menüs und Symbolleisten 325 11.1 Menüleisten 325 11.1.1 Aufbau einer Menüleiste 326 11.1.2 Ereignisbehandlung für Menüelemente 329 11.1.3 Menüelemente konfigurieren 331 11.2 Symbolleisten 332 11.3 Kontextmenüs 334 11.4 Zusammenfassung 334 11.5 Fragen und Antworten 335 11.6 Übung 335 12 Windows-Anwendungen: Dialogfelder 337 12.1 Was sind Dialogfelder? 337 12.2 Dialogfelder aufbauen und konfigurieren 338 12.3 Dialogfelder erzeugen und anzeigen 340 12.4 Einstellungen aus Dialogfeldern abfragen 343 12.5 Standarddialoge 344 12.5.1 Meldungsfelder 345 12.5.2 Dateien öffnen 345 12.6 Zusammenfassung 347 12.7 Fragen und Antworten 347 12.8 Übung 347 13 Windows-Anwendungen: Grafik 349 13.1 Das Arbeitsmaterial des Künstlers 350 13.1.1 Text zeichnen 350 13.1.2 Rekonstruktion von Zeichnungen Das Paint-Ereignis 352 13.1.3 Zeichenmethoden Graphics 353 13.1.4 Pinsel, Stift und Schrift 354 13.2 In Panels zeichnen 356 13.2.1 Die Benutzeroberfläche 356 13.2.2 Die Auswahl der Funktionen 357 13.2.3 Die Funktionen zeichnen 358 13.3 Freihandlinien 359 13
jetzt lerne ich Inhaltsverzeichnis 13.3.1 Konzept für Freihandlinien 360 13.3.2 Eigene Graphics-Objekte erzeugen 361 13.4 Bilder anzeigen 363 13.4.1 Bilder aus Bilddateien laden 363 13.4.2 Bilder anzeigen 364 13.4.3 Ein Bildbetrachter 364 13.5 Zusammenfassung 366 13.6 Fragen und Antworten 367 13.7 Übungen 367 14 Datenbankzugriff (ADO.NET) 369 14.1 Relationale Datenbanken und SQL 370 14.2 SQL-Grundlagen 371 14.3 Zugriff auf eine SQL Server-Datenbank 374 14.3.1 Die Datenbank 376 14.3.2 Die Anwendung 382 14.4 Zugriff auf eine Microsoft Access-Datenbank 388 14.4.1 Projekt kopieren 388 14.4.2 Datenbank erstellen 389 14.4.3 Quelltext für Datenbankzugriff anpassen 389 14.5 Daten zurückschreiben 390 14.5.1 Das Ausgangs-Projekt 390 14.5.2 Das Zusammenspiel der Datenbankklassen 391 14.5.3 Der Code 392 14.6 Zusammenfassung 396 14.7 Fragen und Antworten 397 14.8 Übung 397 15 Bildschirmschoner 399 15.1 Was unterscheidet Bildschirmschoner von anderen Windows-Anwendungen? 399 15.2 Ein Ticker als Bildschirmschoner 400 15.2.1 Konfiguration des Fensters 401 15.2.2 Beenden bei Mausklick 401 15.2.3 Aufrufargumente auswerten 402 15.2.4 Die Animation 403 15.2.5 Den Bildschirmschoner einrichten 406 15.3 Zusammenfassung 407 15.4 Fragen und Antworten 407 15.5 Übungen 407 14 16 Wie geht es weiter? 409
Inhaltsverzeichnis jetzt lerne ich Anhang A: Lösungen 411 Anhang B: Die DVD zum Buch 423 B.1 Installation von Visual C++ Express Edition 423 B.2 Die Programmierbeispiele 425 Anhang C: Unicode-Zeichen 427 Anhang D: Syntax-Referenz 431 D.1 Schlüsselwörter 432 D.2 Elementare Typen 433 D.3 Strings 434 D.4 Operatoren 435 D.5 Ablaufsteuerung 437 D.6 Ausnahmebehandlung 439 D.7 Aufzählungen (enum) 440 D.8 Arrays 440 D.9 Zeiger 441 D.10 Strukturen 441 D.11 Klassen 442 D.12 Vererbung 446 D.13 Schnittstellen (nur C++/CLI) 447 16.1 Von C++ zu C++/CLI 448 Anhang E: Glossar 449 Stichwortverzeichnis 455 15