Inhaltsverzeichnis
Vorwort 6
Kapitel 1 Dateistruktur 11
1.1 Urheber- und Versionshinweis 11
1.2 Aufbau der Header-Datei 12
1.3 Struktur der Definitionsdatei 13
1.4 Die Rolle von Header-Dateien 13
1.5 Verzeichnisstruktur 14
Kapitel 2 Programmlayout 15
2.1 Leerzeile 15
2.2 Codezeile 16
2.3 Leerzeichen innerhalb von Codezeilen17
2.4 Ausrichtung18
2.5 Aufteilung langer Zeilen 19
2.6 Position der Modifikatoren 19
2.7 Anmerkung 20
2.8 Klassenaufbau 21
Kapitel 3 Namensregeln 22
3.1 Gemeinsame Regeln 22
3.2 Einfache Benennungsregeln für WINDOWS-Anwendungen 23
3.3 Benennungsregeln für einfache UNIX-Anwendungen 25
Kapitel 4 Ausdrücke und Grundaussagen 26
4.1 Operator-Vorrang 26
4.2 Zusammengesetzte Ausdrücke 27
4.3 IF-Anweisung 27
4.4 Effizienz von Schleifenanweisungen 29
4.5 Schleifenkontrollvariablen der FOR-Anweisung 30
4.6 SWITCH-Anweisung 30
4.7 GOTO-Anweisung 31
Kapitel 5 Konstanten 33
5.1 Warum Konstanten benötigt werden 33
5.2 CONST vs. #DEFINE 33
5.3 Regeln zur Definition von Konstanten 33
5.4 Konstanten in den Klassen 34
Kapitel 6 Funktionsdesign 36
6.1 Regeln für Parameter 36
6.2 Regeln für Rückgabewerte 37
6.3 Regeln für die interne Umsetzung von Funktionen 39
6.4 Weitere Vorschläge 40
6.5 Verwendung von Behauptungen 41
6.6 Vergleich von Referenzen und Zeigern 42
Kapitel 7 Speicherverwaltung 44
7.1 Speicherzuweisungsmethode 44
7.2 Häufige Speicherfehler und ihre Gegenmaßnahmen 44
7.3 Vergleich von Zeigern und Arrays 45
7.4 Wie übertragen Zeigerparameter Speicher? 47
7.5 Was passiert mit Zeigern mit FREE und DELETE? 50
7.6 Wird dynamischer Speicher automatisch freigegeben? 50
7.7 Eliminieren Sie „wilde Zeiger“ 51
7.8 Warum brauchen wir NEW/DELETE, wenn wir MALLOC/FREE haben? 52
7.9 Was soll ich tun, wenn der Speicher erschöpft ist? 53
7.10 Wichtige Punkte für die Verwendung von MALLOC/FREE 54
7.11 Wichtige Punkte für die Verwendung von NEW/DELETE 55
7.12 Einige Erkenntnisse 56
Kapitel 8 Erweiterte Funktionen von C++-Funktionen 57
8.1 Das Konzept der Funktionsüberladung 57
8.2 Überladen, Überschreiben und Ausblenden von Mitgliedsfunktionen 60
8.3 Standardwerte der Parameter 63
8.4 Überlastung des Bedieners 64
8.5 Funktions-Inlining 65
8.6 Einige Erkenntnisse 68
Kapitel 9 Konstruktoren, Destruktoren und Zuweisungsfunktionen von Klassen 69
9.1 Der Ursprung von Konstruktoren und Destruktoren 69
9.2 Initialisierungstabelle des Konstruktors 70
9.3 Reihenfolge der Errichtung und Zerstörung 72
9.4 Beispiel: Konstruktor und Destruktor der Klasse STRING 72
9.5 Unterschätzen Sie nicht Kopierkonstruktoren und Zuweisungsfunktionen 73
9.6 Beispiel: Kopierkonstruktor und Zuweisungsfunktion der Klasse STRING 73
9.7 Der bequeme Umgang mit Kopierkonstruktoren und Zuweisungsfunktionen 75
9.8 So implementieren Sie die Grundfunktionen einer Klasse in einer abgeleiteten Klasse 75
9.9 Einige Erkenntnisse 77
Kapitel 10 Klassenvererbung und -zusammensetzung 78
10.1 Vererbung 78
10.2 Kombination 80
Kapitel 11 Andere Programmiererfahrungen 82
11.1 Verwendung von CONST zur Verbesserung der Funktionsrobustheit 82
11.2 Verbesserung der Programmeffizienz 84
11.3 Einige hilfreiche Vorschläge 85
Referenz 87
Anhang A: C++/C-Codeüberprüfungsformular 88
Anhang B: C++/C-Testfragen 93
Anhang C: Antworten und Bewertungskriterien für C++/C-Testfragen 97
Expandieren