Warenkorb anzeigen
 
 
     
  Architektur
Bau- & Umwelttechnik
Belletristik
Betriebswirtschaft
Biologie
Briefe, Bewerbung, Rhetorik
Chemie
Entspannung & Meditation
Esoterik & Anthroposophie
Essen und Trinken
Fitness, Aerobic, Bodybuilding, Gymnastik
Garten, Pflanzen, Natur
Geowissenschaften
Geschenkbücher
Geschichte
Gesundheit, Körperpflege
Heimwerken
Hobby, Freizeit, Natur
Informatik & EDV
Innenarchitektur & Design
Journalistik & Presse
Kinder- & Jugendliteratur
Kunst
Lebensführung
Literaturwissenschaft
Lyrik, Dramatik, Essays
Management
Mathematik
Mechanik & Akustik
Medien & Kommunikation
Medizin & Pharmazie
Musik
Nachschlagewerke
Naturmedizin & Homöopathie
Naturwissenschaft & Technik
Partnerschaft, Beziehungen
Pädagogik
Philosophie
Physik & Astronomie
Politik, Gesellschaft, Arbeit
Psychologie
Recht
Reise
Religion
Romane, Erzählungen & Anthologien
Sachbuch / Ratgeber
Schule & Lernen
Soziologie
Sport
Sprachwissenschaft
Steuern
Technik
Theater, Ballett & Film
Tiere
Tiermedizin
Umwelt, Land- & Forstwirtschaft
Verlagswesen, Buchhandel, Bibliothekswesen
Völkerkunde & Volkskunde
Werbung & Marketing
Wirtschaft
 
 
 

Design, Architektur & bildende Kunst
Aktuelle Buchempfehlungen

 
   
 
 
   
 

 


vergrössern
Weiterempfehlen
Neu    EUR   Neu nicht verfügbar

 
 
 
Inhaltsverzeichnis
Vorwort17
Kapitel 1 Erste Schritte21
1.1Ein einfaches C++-Programm schreiben22
1.1.1Das Programm kompilieren und ausführen23
1.2Ein erster Blick auf die EinAusgabe26
1.2.1Standardmäßige EinAusgabe-Objekte26
1.2.2Verwendung der E/A-Bibliothek26
1.3Ein Hinweis zu Kommentaren30
1.4Kontrollstrukturen32
1.4.1Die while-Anweisung32
1.4.2Die for-Anweisung35
1.4.3Die if-Anweisung38
1.4.4Eine unbekannte Anzahl von Eingaben lesen40
1.5Einführung in Klassen42
1.5.1Die Klasse Sales_item42
1.5.2Ein erster Blick auf Elementfunktionen45
1.6Das fertige C++-Programm47
Teil I Die Grundlagen55
Kapitel 2 Variablen und grundlegende Typen57
2.1Elementare Typen58
2.1.1Integrale Typen58
2.1.2Fließkommatypen61
2.2Literale Konstanten62
2.2.1Regeln für Integerliterale62
2.3Variablen69
2.3.1Was ist eine Variable?70
2.3.2Variablennamen72
2.3.3Objekte definieren74
2.3.4Regeln zur Initialisierung von Variablen77
2.3.5Deklarationen und Definitionen79
2.3.6Der Gültigkeitsbereich eines Namens80
2.3.7Variablen dort definieren, wo sie gebraucht werden82
2.3.8Der Qualifizierer const83
2.3.9Referenzen86
2.3.10Typedef-Namen89
2.3.11Aufzählungen90
2.3.12Klassentypen91
2.3.13Eigene Headerdateien schreiben95
2.9.1Eigene Header entwerfen96
2.9.2Einführung in den Präprozessor99
Kapitel 3 Typen der Bibliothek107
3.1Using-Deklarationen108
3.2Der Bibliothekstyp string110
3.2.1Strings definieren und initialisieren110
3.2.2Strings lesen und schreiben111
3.2.3Operationen mit Strings114
3.2.4Umgang mit den Zeichen eines Strings119
3.3Der Bibliothekstyp vector121
3.3.1Vektoren definieren und initialisieren122
3.3.2Operationen mit Vektoren124
3.4Einführung in Iteratoren127
3.4.1Iteratorarithmetik132
3.5Der Bibliothekstyp bitset133
3.5.1Bitsets definieren und initialisieren133
3.5.2Operationen mit Bitsets136
Kapitel 4 Arrays und Zeiger143
4.1Arrays144
4.1.1Arrays definieren und initialisieren144
4.1.2Operationen mit Arrays148
4.2Einführung in Zeiger149
4.2.1Was ist ein Zeiger?149
4.2.2Zeiger definieren und initialisieren150
4.2.3Operationen mit Zeigern155
4.2.4Zeiger für den Zugriff auf Arrayelemente nutzen158
4.2.5Zeiger und der Qualifizierer const162
4.3Zeichenstrings im C-Stil166
4.3.1Dynamisch zugewiesene Arrays171
4.3.2Schnittstellen zu älterem Code176
4.4Mehrdimensionale Arrays178
4.4.1Zeiger und mehrdimensionale Arrays180
Kapitel 5 Ausdrücke185
5.1Arithmetische Operatoren187
5.2Relationale und logische Operatoren190
5.3Bitweise Operatoren194
5.3.1Bitsetobjekte oder integrale Werte verwenden196
5.3.2Shift-Operatoren für die EinAusgabe198
5.4Zuweisungsoperatoren199
5.4.1Die Zuweisung ist rechtsassoziativ199
5.4.2Die Zuweisung hat niedrige Priorität200
5.4.3Zusammengesetzte Zuweisungsoperatoren202
5.5Inkrement- und Dekrementoperatoren203
5.6Der Pfeiloperator205
5.7Der bedingte Operator206
5.8Der Operator sizeof208
5.9Der Kommaoperator209
5.10Zusammengesetzte Ausdrücke auswerten210
5.10.1Priorität210
5.10.2Assoziativität211
5.10.3Reihenfolge der Auswertung215
5.11Die Ausdrücke new und delete217
5.12Typkonvertierungen222
5.12.1Implizite Typkonvertierungen223
5.12.2Arithmetische Konvertierungen224
5.12.3Andere implizite Konvertierungen226
5.12.4Explizite Konvertierungen228
5.12.5Sinnvolle explizite Konvertierungen228
5.12.6Benannte explizite Konvertierungen229
5.12.7Explizite Konvertierungen im alten Stil231
Kapitel 6 Anweisungen237
6.1Einfache Anweisungen238
6.2Deklarationsanweisungen239
6.3Zusammengesetzte Anweisungen (Blöcke)239
6.4Der Gültigkeitsbereich von Anweisungen241
6.5Die if-Anweisung242
6.5.1Der else-Zweig der if-Anweisung243
6.6Die switch-Anweisung246
6.6.1switch-Anweisungen verwenden247
6.6.2Flusssteuerung innerhalb einer switch-Anweisung248
6.6.3Das default-Label250
6.6.4switch-Ausdrücke und case-Labels251
6.6.5Variablendefinitionen innerhalb einer switch-Anweisung251
6.7Die while-Anweisung252
6.8Die for-Anweisung255
6.8.1Teile des for-Headers auslassen257
6.8.2Mehrfache Definitionen im for-Header258
6.9Die do.. .while-Anweisung259
6.10Die break-Anweisung261
6.11Die continue-Anweisung263
6.12Die goto-Anweisung263
6.13try-Blöcke und Ausnahmebehandlung265
6.13.1Ein throw-Ausdruck266
6.13.2Der try-Block266
6.13.3Standardausnahmen269
6.14Den Präprozessor zum Debugging einsetzen270
Kapitel 7 Funktionen277
7.1Funktionen definieren278
7.1.1Der Rückgabetyp einer Funktion279
7.1.2Die Parameterliste einer Funktion280
7.2Argumentübergabe282
7.2.1Wertparameter282
7.2.2Referenzparameter285
7.2.3vector und andere Containerparameter291
7.2.4Arrayparameter292
7.2.5An Funktionen übergebene Arrays verwalten296
7.2.6Befehlszeilenoptionen in main298
7.2.7Funktionen mit variablen Parametern299
7.3Die return-Anweisung299
7.3.1Funktionen ohne Rückgabewert300
7.3.2Funktionen mit Rückgabewert301
7.3.3Rekursion305
7.4Funktionsdeklarationen307
7.4.1Standardargumente308
7.5Lokale Objekte310
7.5.1Automatische Objekte311
7.5.2Statische lokale Objekte311
7.6Inline-Funktionen312
7.7Elementfunktionen einer Klasse315
7.7.1Den Rumpf einer Elementfunktion definieren315
7.7.2Elementfunktionen außerhalb der Klasse definieren318
7.7.3Den Konstruktor von Sales_item schreiben319
7.7.4Gliedern von Klassencodedateien322
7.8Überladene Funktionen322
7.8.1Überladung und Gültigkeitsbereich325
7.8.2Funktionsübereinstimmung und Argumentkonvertierung327
7.8.3Die drei Schritte der Überladungsauflösung328
7.8.4Konvertierung von Argumenttypen331
7.9Zeiger auf Funktionen336
Kapitel 8 Die E/A-Bibliothek343
8.1Eine objektorientierte Bibliothek344
8.2Status348
8.3Den Ausgabepuffer verwalten352
8.4Dateiein- und -ausgäbe354
8.4.1Dateistreamobjekte verwenden355
8.4.2Dateimodi358
8.4.3Ein Programm zum Öffnen und Überprüfen von Eingabedateien361
8.5Stringstreams362
Teil II Container und Algorithmen369
Kapitel 9 Sequenzielle Container371
9.1Sequenzielle Container definieren373
9.1.1Containerelemente initialisieren373
9.1.2Einschränkungen für die Typen von Containerelementen376
9.2Iteratoren und Iteratorbereiche378
9.2.1Iteratorbereiche381
9.2.2Ungültige Iteratoren durch Containeroperationen383
9.3Operationen in sequenziellen Containern383
9.3.1Typedefs für Container384
9.3.2Die Elementfunktionen begin und end385
9.3.3Elemente zu einem sequenziellen Container hinzufügen386
9.3.4Relationale Operatoren390
9.3.5Größenoperationen für Container392
9.3.6Elementzugriff393
9.3.7Elemente löschen395
9.3.8Zuweisung und swap398
9.4Wachstum von Vektoren400
9.4.1Die Elementfunktionen capacity und reserve401
9.5Welcher Container soll verwendet werden?404
9.6Weitere Anmerkungen zu Strings406
9.6.1Andere Möglichkeiten zur Konstruktion von Strings409
9.6.2Andere Möglichkeiten zum Ändern von Strings411
9.6.3Stringspezifische Operationen413
9.6.4Suchoperationen an Strings416
9.6.5Strings vergleichen419
9.7Containeradapter422
9.7.1Der Stack-Adapter423
9.7.2Warteschlange und Prioritätswarteschlange425
Kapitel 10 Assoziative Container431
10.1Zur Einführung: der Typ pair432
10.2Assoziative Container435
10.3Der Typ map436
10.3.1Eine Map definieren436
10.3.2Von map definierte Typen438
10.3.3Elemente zu einer Map hinzufügen439
10.3.4Eine Map indizieren439
10.3.5map::insert441
10.3.6Map-Elemente suchen und abrufen444
10.3.7Elemente aus einer Map löschen445
10.3.8Über eine Map iterieren446
10.3.9Eine Map zur Wortersetzung447
10.4Der Typ set450
10.4.1Sets definieren und verwenden450
10.4.2Ein Set für eine Wortausschlussliste erstellen452
10.5Die Typen multimap und multiset453
10.5.1Elemente hinzufügen und entfernen454
10.5.2Elemente in Multimaps und Multisets suchen454
10.6Containerverwendung: Ein Programm zur Textabfrage458
10.6.1Der Entwurf des Abfrageprogramms459
10.6.2Die Klasse Text-Query460
10.6.3Die Klasse Text-Query verwenden462
10.6.4Die Elementfunktionen schreiben464
Kapitel 11 Generische Algorithmen469
11.1Überblick470
11.2Ein erster Blick auf die Algorithmen473
11.2.1Lesealgorithmen474
11.2.2Algorithmen zum Schreiben von Containerelementen476
11.2.3Algorithmen zum Umordnen von Containerelementen479
11.3Weitere Anmerkungen zu Iteratoren485
11.3.1Einfügeiteratoren485
11.3.2E/A-Streamiteratoren487
11.3.3Reverse-Iteratoren492
11.3.4Iteratoren auf konstante Container495
11.3.5Die fünf Iteratorkategorien496
11.4Struktur generischer Algorithmen499
11.4.1Parametermuster von Algorithmen500
11.4.2Namenskonventionen für Algorithmen501
11.5Containerspezifische Algorithmen503
Teil III Klassen und die Datenabstraktion509
Kapitel 12 Klassen511
12.1Klassendefinitionen und -deklarationen512
12.1.1Klassendefinitionen: Eine kurze Wiederholung512
12.1.2Datenabstraktion und Kapselung514
12.1.3Weitere Anmerkungen zu Klassendefinitionen517
12.1.4Klassendeklarationen und -definitionen im Vergleich521
12.1.5Klassenobjekte522
12.2Der implizite Zeiger this523
12.3Der Gültigkeitsbereich der Klasse528
12.3.1Namenssuche im Gültigkeitsbereich der Klasse530
12.4Konstruktoren535
12.4.1Die Element-Initialisierungsliste538
12.4.2Standardargumente und Konstruktoren542
12.4.3Der Standardkonstruktor543
12.4.4Implizite Klassentypkonvertierungen546
12.4.5Explizite Initialisierung von Klassenelementen549
12.5Freunde550
12.6Statische Klassenelemente553
12.6.1Statische Elementfunktionen555
12.6.2Statische Datenelemente555
Kapitel 13 Kontrolliertes Kopieren563
13.1Der Kopierkonstruktor564
13.1.1Der compilergenerierte Kopierkonstruktor568
13.1.2Einen eigenen Kopierkonstruktor definieren568
13.1.3Das Kopieren verhindern570
13.2Der Zuweisungsoperator571
13.3Der Destruktor573
13.4Ein Beispiel zur Nachrichtenverarbeitung575
13.5Zeigerelemente verwalten581
13.5.1Eine Klasse für intelligente Zeiger definieren584
13.5.2Wertähnliche Klassen definieren590
Kapitel 14 Überladene Operatoren und Typkonvertierungen597
14.1Einen überladenen Operator definieren598
14.1.1Entwurf überladener Operatoren603
14.2Ein- und Ausgabeoperatoren606
14.2.1Den Ausgabeoperator « überladen606
14.2.2Den Eingabeoperator » überladen609
14.3Arithmetische und relationale Operatoren612
14.3.1Gleichheitsoperatoren613
14.3.2Relationale Operatoren614
14.4Zuweisungsoperatoren615
14.5Der Indexoperator616
14.6Elementzugriffsoperatoren618
14.7Inkrement- und Dekrementoperatoren621
14.8Aufrufoperator und Funktionsobjekte626
14.8.1Funktionsobjekte mit Bibliotheksalgorithmen verwenden627
14.8.2In der Bibliothek definierte Funktionsobjekte629
14.8.3Funktionsadapter für Funktionsobjekte631
14.9Typkonvertierungen und Klassentypen632
14.9.1Die Nützlichkeit von Typkonvertierungen633
14.9.2Konvertierungsoperatoren634
14.9.3Argumentübereinstimmung und Typkonvertierung638
14.9.4Überladungsauflösung und Klassenargumente643
14.9.5Überladung, Typkonvertierung und Operatoren646
Teil IV Objektorientierte und generische Programmierung653
Kapitel 15 Objektorientierte Programmierung655
15.1Ein Überblick über OOP656
15.2Basis- und abgeleitete Klassen definieren658
15.2.1Basisklassen definieren658
15.2.2Geschützte Elemente661
15.2.3Abgeleitete Klassen662
15.2.4Virtuelle und andere Elementfunktionen666
15.2.5Öffentliche, private und geschützte Vererbung670
15.2.6Freundschaft und Vererbung676
15.2.7Vererbung bei statischen Elementen676
15.3Typkonvertierung und Vererbung677
15.3.1Konvertierung von abgeleiteten zu Basistypen678
15.3.2Konvertierung von Basiszu abgeleiteten Typen681
15.4Konstruktoren und kontrolliertes Kopieren682
15.4.1Basisklassen-Konstruktoren und kontrolliertes Kopieren682
15.4.2Konstruktoren abgeleiteter Klassen682
15.4.3Kontrolliertes Kopieren und die Vererbung686
15.4.4Virtuelle Destruktoren689
15.4.5Virtuelle Funktionen in Konstruktoren und Destruktoren692
15.5Der Klassengültigkeitsbereich bei der Vererbung692
15.5.1Namenssuche zur Kompilierungszeit693
15.5.2Namenskonflikte bei der Vererbung694
15.5.3Gültigkeitsbereich und Elementfunktionen695
15.5.4Virtuelle Funktionen und Gültigkeitsbereich697
15.6Rein virtuelle Funktionen699
15.7Container und Vererbung700
15.8Handieklassen und Vererbung702
15.8.1Ein zeigerähnlicher Handle703
15.8.2Einen unbekannten Typ klonen706
15.8.3Den Handle verwenden707
15.9Weitere Anmerkungen zu Abfragen712
15.9.1Eine objektorientierte Lösung713
15.9.2Ein wertähnlicher Handle715
15.9.3Die Klasse Query_base717
15.9.4Die Handleklasse Query718
15.9.5Die abgeleiteten Klassen721
15.9.6Die eval-Funktionen724
Kapitel 16 Templates und generische Programmierung731
16.1Templatedefinitionen732
16.1.1Ein Funktionstemplate definieren733
16.1.2Ein Klassentemplate definieren735
16.1.3Templateparameter736
16.1.4Templatetypparameter738
16.1.5Nichttyp-Templateparameter741
16.1.6Generische Programme schreiben742
16.2Instanziierung745
16.2.1Deduktion der Templateargumente747
16.2.2Explizite Argumente von Funktionstemplates752
16.3Kompilierungsmodelle für Templates754
16.4Elemente von Klassentemplates758
16.4.1Elementfunktionen von Klassentemplates761
16.4.2Templateargumente für Nichttypparameter766
16.4.3friend-Deklarationen in Klassentemplates766
16.4.4friend-Deklarationen für Queue und Queueltem769
16.4.5Elementtemplates771
16.4.6Die vollständige Klasse Queue775
16.4.7Statische Elemente von Klassentemplates777
16.5Eine generische Handieklasse778
16.5.1Die Handleklasse definieren779
16.5.2Den Handle verwenden780
16.6Spezialisierung von Templates783
16.6.1Funktionstemplates spezialisieren784
16.6.2Klassentemplates spezialisieren787
16.6.3Elemente ohne die Klasse spezialisieren789
16.6.4Partielle Spezialisierung von Klassentemplates791
16.7Überladung bei Funktionstemplates792
Teil V Fortgeschrittene Themen801
Kapitel 17 Werkzeuge für umfangreiche Programme803
17.1Ausnahmebehandlung804
17.1.1Auslösen einer Ausnahme vom Klassentyp805
17.1.2Stack-Abwicklung807
17.1.3Eine Ausnahme abfangen809
17.1.4Ausnahmen erneut auslösen811
17.1.5Ein universeller Handler812
17.1.6try-Blöcke für Funktionen und Konstruktoren812
17.1.7Klassenhierarchien bei Ausnahmen814
17.1.8Automatische Ressourcenfreigabe816
17.1.9Die Klasse auto_ptr818
17.1.10Ausnahmespezifikationen824
17.1.11Ausnahmespezifikationen für Funktionszeiger829
17.2Namensbereiche830
17.2.1Namensbereichsdefinitionen830
17.2.2Verschachtelte Namensbereiche835
17.2.3Unbenannte Namensbereiche837
17.2.4Namensbereichselemente verwenden838
17.2.5Klassen, Namensbereiche und Gültigkeitsbereich843
17.2.6Überladung und Namensbereiche847
17.2.7Namensbereiche und Templates850
17.3Mehrfache und virtuelle Vererbung850
17.3.1Mehrfache Vererbung851
17.3.2Typkonvertierung und mehrfache Basisklassen853
17.3.3Kontrolliertes Kopieren für mehrfach abgeleitete Klassen857
17.3.4Der Klassengültigkeitsbereich bei der mehrfachen Vererbung ..858
17.3.5Virtuelle Vererbung861
17.3.6Deklaration virtueller Basisklassen863
17.3.7Besondere Initialisierungssemantik864
Kapitel 18 Besondere Werkzeuge und Techniken873
18.1Die Speicherzuweisung optimieren873
18.1.1Speicherzuweisung in C++874
18.1.2Die Klasse allocator875
18.1.3Die Funktionen operator new und operator delete880
18.1.4Placement-new-Ausdrücke882
18.1.5Expliziter Destruktoraufruf884
18.1.6Klassenspezifische new- und delete-Ausdrücke885
18.1.7Eine Basisklasse für die Speicherzuweisung887
18.2Typidentifizierung zur Laufzeit894
18.2.1Der Operator dynamic_cast895
18.2.2Der Operator typeid898
18.2.3RTTI verwenden899
18.2.4Die Klasse type_info902
18.3Zeiger auf Klassenelemente903
18.3.1Zeiger auf Elemente deklarieren904
18.3.2Zeiger auf Klassenelemente verwenden906
18.4Verschachtelte Klassen910
18.4.1Implementierung verschachtelter Klassen911
18.4.2Namenssuche im Gültigkeitsbereich verschachtelter Klassen ..915
18.5Platzsparende Klassen: union916
18.6Lokale Klassen920
18.7Nicht portierbare Merkmale922
18.7.1Bitfelder922
18.7.2Der Qualifizierer volatile924
18.7.3Die Verlinkungsdirektive extern "C"925
Kapitel A Die Bibliothek935
A.1Namen und Header936
A.2Ein Überblick über die Algorithmen938
A.2.1Algorithmen zur Suche nach Objekten938
A.2.2Andere Lesealgorithmen940
A.2.3Algorithmen zur binären Suche941
A.2.4Algorithmen zum Schreiben von Containerelementen942
A.2.5Partitionierungs- und Sortieralgorithmen944
A.2.6Allgemeine Umordnungsoperationen946
A.2.7Permutationsalgorithmen948
A.2.8Mengenalgorithmen für geordnete Folgen949
A.2.9Minimal- und Maximalwerte950
A.2.10Numerische Algorithmen951
A.3Weitere Anmerkungen zur E/A-Bibliothek953
A.3.1Formatstatus953
A.3.2Viele Manipulatoren ändern den Formatstatus953
A.3.3Ausgabeformate steuern954
A.3.4Eingabeformate steuern962
A.3.5Unformatierte E/A-Operationen963
A.3.6Ein-Byte-Operationen963
A.3.7Multi-Byte-Operationen965
A.3.8Wahlfreier Zugriff auf einen Stream967
A.3.9Lesen und Beschreiben derselben Datei970
Index973




 
   


Newsletter bestellen


 
    Aktuelle Buchempfehlungen:
 
       
Reinschauen  

Ernährungsratgeber Magen und Darm
Reinschauen  

 
   
Reinschauen  

Das Jungbrunnenwunder
Reinschauen  

 
   
Reinschauen  

Zauberhafte Kamelien
Reinschauen  

 
   
Reinschauen  

Führen, Fördern, Coachen
Reinschauen  

 
   
Reinschauen  

Wissen neu erleben - Der Mensch
Reinschauen  

 
   
Reinschauen  

Die Schilddrüse
Reinschauen  

 
   
Reinschauen  

Französischer Jakobsweg
Reinschauen  

 
   
Reinschauen  

Die Welt des Kaffees
Reinschauen  

 
   

 
 
 
Einkaufen so komfortabel wie in der Buchhandlung: blättern und lesen im Buch vor dem Kauf. Bestellen Sie bei Gefallen das gewünschte Buch über den Onlineshop.
 
© 2000 - 2012  www.DeutschesFachbuch.de