سبد خرید  cart.gif |  حساب من |  تماس با ما |  راهنما     Search
موضوعات مرتبط
Cover image for product 3527708340
Davis
ISBN: 978-3-527-70834-5
Paperback
395 pages
January 2012
This is an out of stock title.
  • Table of Contents
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 22

Teil II: Ein brauchbarer C++-Programmierer werden 22

Teil III: Eine Einführung in Klassen 22

Teil IV: Vererbung 22

Teil V: Optionale Funktionen 22

Teil VI: Der Top-Ten-Teil 23

Icons in diesem Buch 23

Wie geht’s weiter? 23

Teil I Einführung in die C++-Programmierung 25

Kapitel 1 Ihr erstes C++-Programm 27

Was ist ein Programm? 27

Code::Blocks unter Windows installieren 28

Ihr erstes C++-Programm erstellen 31

Ein Projekt anlegen 32

Den C++-Code eingeben 33

Ihr Programm erstellen 35

Ihr Programm ausführen 36

Kommentierte Programme lesen 37

Das gemeinsame Gerüst aller C++-Programme 38

Sourcecode durch Kommentare erläutern 38

Programme bestehen aus C++-Anweisungen 39

Deklarationen schreiben 40

Ausgaben erzeugen 41

Ausdrücke berechnen 41

Das Ergebnis eines Ausdrucks speichern 41

Den Rest des Programms untersuchen 42

Kapitel 2 Variablen verwenden 43

Variablen deklarieren 43

Verschiedene Variablentypen für alle Fälle 44

Überblick über die Einschränkungen der Ganzzahlen in C++ 45

Das Rundungsproblem lösen 46

Die Einschränkungen von Fließkommazahlen 47

Variablentypen deklarieren 48

Konstantentypen 50

Wertebereiche von numerischen Typen 51

Sonderzeichen 52

Zeichen mit doppelter Spurbreite 53

Sind diese Berechnungen wirklich logisch? 54

Mixed-Mode-Ausdrücke 54

Automatische Deklarationen 55

Kapitel 3 Mathematische Operationen ausführen 57

Einfache binäre Operationen ausführen 57

Ausdrücke zerlegen 59

Die Reihenfolge von Operationen bestimmen 59

Unäre Operationen ausführen 60

Mit Zuweisungsoperatoren arbeiten 61

Kapitel 4 Logische Operationen ausführen 63

Warum brauchen wir überhaupt logische Operationen? 63

Mit den einfachen logischen Operatoren arbeiten 64

Logische Werte speichern 65

Mit logischen int-Variablen arbeiten 66

Vorsicht bei logischen Operationen mit Fließkommavariablen 67

Binärzahlen repräsentieren 68

Das dezimale Zahlensystem 69

Andere Zahlensysteme 69

Das binäre Zahlensystem 69

Bitweise logische Operationen ausführen 70

Die bitweisen Operatoren 71

Die bitweisen Operatoren verwenden 72

Ein einfacher Test 73

Etwas Logisches mit logischen Berechnungen tun 75

Kapitel 5 Den Programmablauf steuern 77

Den Programmablauf mit Verzweigungsbefehlen steuern 77

Schleifen in einem Programm ausführen 79

Eine Schleife ausführen, während eine Bedingung true ist 80

Die Autoinkrement- und Autodekrement-Funktionen verwenden 81

Mit der for-Schleife arbeiten 83

Die gefürchtete Endlosschleife vermeiden 85

Spezielle Schleifenkontrollen anwenden 86

Steuerbefehle verschachteln 89

Die Mehrwege-Verzweigung: switch 91

Teil II Ein brauchbarer C++-Programmierer werden 93

Kapitel 6 Funktionen erstellen 95

Eine Funktion schreiben und verwenden 95

Unsere erste Funktion definieren 98

Die Funktion sumSequence() definieren 98

Die Funktion sumSequence() aufrufen 98

Teile und herrsche 99

Die Details von Funktionen verstehen 99

Einfache Funktionen verstehen 100

Funktionen mit Argumenten verstehen 100

Funktionsnamen überladen 104

Funktionsprototypen definieren 105

Variable Speichertypen 107

Kapitel 7 Sequenzen in Arrays speichern 109

Wozu werden Arrays benötigt? 109

Ein Array verwenden 110

Ein Array initialisieren 114

Mit einem zu großen Indexwert auf ein Array zugreifen 115

Mit Arrays arbeiten 115

Arrays von Arrays definieren und verwenden 115

Arrays von Zeichen verwenden 116

Ein Array von Zeichen erstellen 116

Einen String von Zeichen erstellen 117

Zeichenstrings manipulieren 119

Ein paar Bibliotheksfunktionen 121

Mehr Platz für Wide-Strings 122

Kapitel 8 Ein erster Blick auf C++-Zeiger 125

Variablengröße 125

Was ist in einer Adresse enthalten? 127

Adressoperatoren 127

Zeigervariablen verwenden 129

Verschiedene Typen von Zeigern verwenden 130

Zeiger an Funktionen übergeben 131

Übergabe als Wert 131

Zeigerwert übergeben 132

Übergabe per Referenz 133

Konstante Irritationen 134

Einen Speicherblock namens Heap nutzen 135

Begrenzter Gültigkeitsbereich 135

Das Problem des Gültigkeitsbereichs untersuchen 137

Mit Hilfe des Heaps eine Lösung finden 137

Kapitel 9 Ein zweiter Blick auf C++-Zeiger 139

Operationen für Zeigervariablen definieren 139

Arrays im Licht von Zeigervariablen noch einmal betrachten 140

Operatoren auf die Adresse eines Arrays anwenden 141

Zeigeroperationen auf einen String ausdehnen 143

Gründe für die zeigerbasierte String-Manipulation 144

Operatoren auf andere Zeigertypen als char anwenden 145

Einen Zeiger mit einem Array vergleichen 145

Wann gibt’s einen Zeiger nicht? 148

Arrays von Zeigern deklarieren und verwenden 149

Arrays von Zeichenstrings nutzen 150

Auf die Argumente von main() zugreifen 151

Kapitel 10 Der C++-Präprozessor 155

Was ist ein Präprozessor? 155

Einbinden von Dateien 156

Die #Definition von Dingen 159

Und wenn ich nichts #definieren will? 161

Ein paar Alternativen aufzählen 162

Dinge mit einem »ja aber« einbinden 163

Vordefinierte Objekte 164

Typendefinitionen mit typedef 167

Teil III

Eine Einführung in Klassen 169

Kapitel 11 Ein Blick auf die objektorientierte Programmierung 171

Die Abstraktion und der Mikrowellenherd 171

Nachos prozedural zubereiten 172

Nachos objektorientiert zubereiten 172

Klassenbildung und Mikrowellen 173

Wozu Klassen bilden? 174

Kapitel 12 Klassen in C++ 175

Einführung der Klasse 175

Das Format einer Klasse 175

Auf die Elemente einer Klasse zugreifen 176

Objekte aktivieren 177

Reale Objekte simulieren 177

Wozu dienen Elementfunktionen? 178

Eine Elementfunktion hinzufügen 179

Eine Elementfunktion aufrufen 180

Von einer Elementfunktion auf andere Elemente zugreifen 182

Auflösung des Gültigkeitsbereichs 183

Eine Elementfunktion in der Klasse definieren 184

Elementfunktionen separat definieren 186

Elementfunktionen überladen 188

Kapitel 13 Objekte mit Zeigern manipulieren 191

Arrays aus Objekten deklarieren 191

Zeiger auf Objekte deklarieren 192

Einen Objektzeiger dereferenzieren 193

Der Pfeiloperator 194

Objekte an Funktionen übergeben 194

Eine Funktion mit einem Objektwert aufrufen 194

Eine Funktion mit einem Objektzeiger aufrufen 196

Eine Funktion mit dem Referenzoperator aufrufen 197

Wozu Zeiger oder Referenzen? 199

Zurück zum Heap 199

Viele Objekte auf dem Heap anlegen 200

Zeiger und Referenzen vergleichen 201

Verknüpfungen mit verketteten Listen erstellen 201

Andere Operationen auf eine verkettete Liste anwenden 202

Das LinkedListData-Beispielprogramm 203

Ein Hoffnungsstrahl: Eine Liste von Containern, die mit der C++-Library verknüpft sind 207

Kapitel 14 Nicht stören: Elemente schützen 209

Elemente schützen 209

Wozu benötigen Sie geschützte Elemente? 209

Wie geschützte Elemente funktionieren 210

Argumente für den Einsatz geschützter Elemente 211

Den internen Status einer Klasse schützen 211

Eine Klasse mit eingeschränkter Schnittstelle verwenden 212

Nicht-Elementfunktionen Zugriff auf geschützte Elemente geben 213

Kapitel 15 Objekte konstruieren und zerstören 217

Objekte erstellen 217

Konstruktoren verwenden 218

Ein einzelnes Objekt konstruieren 218

Mehrere Objekte konstruieren 220

Ein Duplex konstruieren 221

Einen Destruktor analysieren 223

Warum Sie den Destruktor benötigen 223

Mit Destruktoren arbeiten 223

Kapitel 16 Konstruktoren mit Argumenten 229

Konstruktoren mit Argumenten ausstatten 229

Einen Konstruktor verwenden 230

Konstruktoren überladen 232

Standardmäßige Standardkonstruktoren 234

Klassenelemente konstruieren 236

Ein komplexes Datenelement konstruieren 236

Ein konstantes Datenelement konstruieren 241

Die Reihenfolge der Konstruktion 241

Lokale Objekte werden der Reihenfolge nach konstruiert 242

Statische Objekte werden nur einmal konstruiert 242

Alle globalen Objekte werden vor main() konstruiert 243

Globale Objekte werden in keiner bestimmten Reihenfolge konstruiert 243

Elemente werden in der Reihenfolge konstruiert, in der sie deklariert werden 245

Destruktoren werden in der umgekehrten Reihenfolge der

Konstruktoren aufgerufen 245

Konstruktoren als Form der Konvertierung 245

Kapitel 17 Der Copy-Konstruktor 247

Ein Objekt kopieren 247

Warum Sie Copy-Konstruktoren brauchen 247

Die Copy-Konstruktoren verwenden 248

Der automatische Copy-Konstruktor 250

Flache oder tiefe Kopien erstellen 252

Temporäre Objekte 256

Temporäre Objekte dauerhaft vermeiden 258

Kapitel 18 Statische Elemente 259

Ein statisches Element definieren 259

Warum Sie statische Elemente benötigen 259

Statische Elemente verwenden 260

Statische Datenelemente referenzieren 261

Verwendungsmöglichkeiten statischer Datenelemente 262

Statische Elementfunktionen deklarieren 263

Was ist überhaupt this? 265

Teil IV Vererbung 267

Kapitel 19 Eine Klasse erben 269

Brauche ich Vererbung? 270

Wie funktioniert die Vererbung einer Klasse? 271

Eine Unterklasse verwenden 273

Eine Unterklasse konstruieren 273

Eine Unterklasse zerstören 275

Die HAS–A-Beziehung 275

Kapitel 20 Virtuelle Elementfunktionen 277

Warum Sie Polymorphismus brauchen 280

Wie funktioniert Polymorphismus? 280

Wann ist eine Funktion virtuell und wann nicht? 282

Virtuelle Betrachtungen 283

Kapitel 21 Klassen faktorisieren 285

Das Faktorisieren 285

Abstrakte Klassen implementieren 289

Das Konzept der abstrakten Klasse 290

Wie man aus einer abstrakten Klasse eine wirkliche Klasse macht 292

Abstrakte Klassen übergeben 292

Teil V Optionale Funktionen 293

Kapitel 22 Ein neuer Zuweisungsoperator 295

Operatoren mit Funktionen vergleichen 295

Einen neuen Operator einfügen 296

Flache Kopien zu erstellen ist ein tiefes Problem 296

Den Zuweisungsoperator überladen 298

Den Indexoperator überladen 303

Kapitel 23 Mit Stream-I/O arbeiten 305

Wie funktioniert Stream-I/O? 305

Default Stream-Objekte 306

Die fstream-Unterklassen 307

Vielfältiges Öffnen 308

Datei, was machst Du gerade? 309

Kann ich ein Beispiel sehen? 309

Andere Methoden der Stream-Klassen 313

Streams direkt lesen und schreiben 314

Das Format kontrollieren 316

Was ist mit endl? 318

Positionierung des Zeigers innerhalb einer Datei 318

Die stringstream-Unterklassen verwenden 319

Manipulatoren manipulieren 322

Kapitel 24 Fehler verarbeiten – Ausnahmen 325

Warum brauche ich einen neuen Fehlermechanismus? 327

Den Ausnahmemechanismus untersuchen 328

Welche Dinge sind »throw«-fähig? 331

Einfach mal durchreichen 334

Kapitel 25 Mehrfachvererbung 337

Wie funktioniert die Mehrfachvererbung? 337

Vererbungsmehrdeutigkeiten beseitigen 339

Virtuelle Vererbung hinzufügen 340

Objekte der Mehrfachvererbung erzeugen 346

Eine gegenteilige Meinung 347

Kapitel 26 C++-Templates durchleuchten 349

Eine Funktion in einem Template verallgemeinern 350

Template-Klassen 352

Tipps für die Verwendung von Templates 356

Kapitel 27 Die Standard Template Library als Standard verwenden 357

Der string-Container 358

Die list-Container 362

Listen durchwandern 363

Operationen auf ganzen Listen 364

Beispiel, bitte! 365

Teil VI Der Top-Ten-Teil 369

Kapitel 28 Zehn Methoden, um Fehler ineinem Programm zu vermeiden 371

Aktivieren Siealle Warnungen und Fehlermeldungen 371

Pflegen Sieeinen sauberen und konsistenten Programmierstil 372

Schränken Siedie Sichtbarkeitsbereiche ein 372

Kommentieren Sie Ihren Code 374

Durchlaufen Siejeden Pfad mindestens einmal im Einzelschrittmodus 374

Vermeiden Siees, Operatoren zu überladen 374

Mit dem Heap arbeiten 375

Fehler mit Ausnahmen behandeln 375

Deklarieren Sie Destruktoren virtuell 375

Vermeiden Sie die Mehrfachvererbung 377

Kapitel 29 (Fast) Zehn Websites zu allen Fragen rund um C++ 379

C-plusplus.de (deutsch) 379

Cplusplus.com (englisch) 379

Code::Blocks 379

Visual C++ Express Edition 380

Forum zur Visual C++ Express Edition 380

Referenz zur Windows-Programmierung mit C++ 380

Referenz zu C (englisch) 380

Referenz zu C (deutsch) 380

Informationen zu C++11 380

Anhang A Über die CD 381

Systemanforderungen 381

Die CD benutzen 381

Der Inhalt der CD 382

Entwicklungswerkzeug 382

Programm-Quellcode 382

Falls Sie Probleme mit der CD haben 382

Stichwortverzeichnis 385

عناوین مرتبط
Programming / C & C++