Suchen und Finden
Service
Infos und Kontakt
Inhalt
6
Vorwort
22
I.Teil I: Einführung in C++
26
1 Es geht los!
28
1.1 Historisches
28
1.2 Objektorientierte Programmierung
29
1.3 Compiler
32
1.4 Das erste Programm
32
1.4.1 Namenskonventionen
37
1.5 Integrierte Entwicklungsumgebungen
38
1.5.1 Code::Blocks
38
1.5.2 Eclipse
40
1.5.3 KDevelop
42
1.6 Einfache Datentypen und Operatoren
44
1.6.1 Ausdruck
45
1.6.2 Ganze Zahlen
45
1.6.3 Reelle Zahlen
49
1.6.4 Konstante
53
1.6.5 Zeichen
54
1.6.6 Logischer Datentyp bool
57
1.6.7 Referenzen
58
1.6.8 Regeln zum Bilden von Ausdrücken
59
1.6.9 Standard-Typumwandlungen
60
1.7 Gültigkeitsbereich und Sichtbarkeit
61
1.7.1 Namespace std
62
1.8 Kontrollstrukturen
63
1.8.1 Anweisungen
63
1.8.2 Sequenz (Reihung)
65
1.8.3 Auswahl (Selektion, Verzweigung)
65
1.8.4 Fallunterscheidungen mit switch
70
1.8.5 Wiederholungen
72
1.8.6 Kontrolle mit break und continue
79
1.9 Benutzerdefinierte und zusammengesetzte Datentypen
81
1.9.1 Aufzählungstypen
81
1.9.2 Arrays: Der C++-Standardtyp vector
83
1.9.3 Zeichenketten: Der C++-Standardtyp string
88
1.9.4 Strukturierte Datentypen
90
2 Einfache Ein- und Ausgabe
94
2.1 Standardein- und -ausgabe
94
2.2 Ein- und Ausgabe mit Dateien
97
3 Programmstrukturierung
102
3.1 Funktionen
103
3.1.1 Aufbau und Prototypen
103
3.1.2 Gültigkeitsbereiche und Sichtbarkeit in Funktionen
105
3.2 Schnittstellen zum Datentransfer
107
3.2.1 Übergabe per Wert
108
3.2.2 Übergabe per Referenz
112
3.2.3 Gefahren bei der Rückgabe von Referenzen
113
3.2.4 Vorgegebene Parameterwerte und variable Parameterzahl
114
3.2.5 Überladen von Funktionen
115
3.2.6 Funktion main()
116
3.2.7 Beispiel Taschenrechnersimulation
117
3.2.8 Spezifikation von Funktionen
122
3.3 Modulare Programmgestaltung
123
3.3.1 Steuerung der Übersetzung nur mit #include
124
3.3.2 Einbinden vorübersetzter Programmteile
124
3.3.3 Dateiübergreifende Gültigkeit und Sichtbarkeit
126
3.3.4 Übersetzungseinheit, Deklaration, Definition
128
3.3.5 Compilerdirektiven und Makros
130
3.4 Funktions-Templates
136
3.4.1 Spezialisierung von Templates
139
3.4.2 Einbinden von Templates
140
3.5 inline-Funktionen
141
3.6 Namensräume
143
3.7 C++-Header
144
3.7.1 Einbinden von C-Funktionen
146
4 Objektorientierung 1
148
4.1 Abstrakte Datentypen
149
4.2 Klassen und Objekte
150
4.2.1 inline-Elementfunktionen
153
4.3 Initialisierung und Konstruktoren
155
4.3.1 Standardkonstruktor
155
4.3.2 Allgemeine Konstruktoren
156
4.3.3 Kopierkonstruktor
159
4.3.4 Typumwandlungskonstruktor
161
4.4 Beispiel: Rationale Zahlen
163
4.4.1 Aufgabenstellung
163
4.4.2 Entwurf
164
4.4.3 Implementation
167
4.5 const-Objekte und Methoden
171
4.6 Destruktoren
172
4.7 Wie kommt man zu Klassen und Objekten? Ein Beispiel
174
4.7.1 Einige Analyse-Überlegungen
175
4.7.2 Formulierung des Szenarios in C++
178
4.8 Gegenseitige Abhängigkeit von Klassen
180
4.9 Delegierender Konstruktor
182
5 Intermezzo: Zeiger
184
5.1 Zeiger und Adressen
185
5.2 C-Arrays
188
5.2.1 C-Arrays und sizeof
190
5.2.2 Indexoperator bei C-Arrays
190
5.2.3 Initialisierung von C-Arrays
191
5.2.4 Zeigerarithmetik
191
5.3 C-Zeichenketten
192
5.4 Dynamische Datenobjekte
199
5.4.1 Freigeben dynamischer Objekte
202
5.5 Zeiger und Funktionen
204
5.5.1 Parameterübergabe mit Zeigern
204
5.5.2 Parameter des main-Programms
206
5.5.3 Gefahren bei der Rückgabe von Zeigern
207
5.6 Mehrdimensionale C-Arrays
208
5.6.1 Statische mehrdimensionale C-Arrays
208
5.6.2 Dynamisch erzeugte mehrdimensionale Arrays
212
5.6.3 Klasse für dynamisches zweidimensionales Array
214
5.7 Binäre Ein-/Ausgabe
218
5.8 Zeiger auf Funktionen
221
5.9 this-Zeiger
224
5.10 Komplexe Deklarationen lesen
225
5.11 Standard-Typumwandlungen für Zeiger
227
5.12 Zeiger auf Elementfunktionen und -daten3
228
5.12.1 Zeiger auf Elementfunktionen
228
5.12.2 Zeiger auf Elementdaten
229
6 Objektorientierung 2
230
6.1 Eine String-Klasse
230
6.1.1 Optimierung der Klasse MeinString
235
6.1.2 friend-Funktionen
237
6.2 Klassenspezifische Daten und Funktionen
239
6.2.1 Klassenspezifische Konstante
242
6.3 Klassen-Templates
243
6.3.1 Ein Stack-Template
243
6.3.2 Stack mit statisch festgelegter Größe
246
6.4 Template-Metaprogrammierung
248
6.5 Variadic Templates: Templates mitvariabler Parameterzahl
250
7 Vererbung
254
7.1 Vererbung und Initialisierung
260
7.2 Zugriffsschutz
261
7.3 Typbeziehung zwischen Ober- und Unterklasse
263
7.4 Code-Wiederverwendung
264
7.5 Überschreiben von Funktionen in abgeleiteten Klassen
265
7.6 Polymorphismus
267
7.6.1 Virtuelle Funktionen
267
7.6.2 Abstrakte Klassen
272
7.6.3 Virtueller Destruktor
277
7.7 Probleme der Modellierung mit Vererbung
279
7.8 Mehrfachvererbung
282
7.8.1 Namenskonflikte
285
7.8.2 Virtuelle Basisklassen
286
7.9 Standard-Typumwandlungsoperatoren
289
7.10 Typinformationen zur Laufzeit
292
7.11 Using-Deklaration für Klassen
293
7.12 Private- und Protected-Vererbung
294
8 Fehlerbehandlung
298
8.1 Ausnahmebehandlung
300
8.1.1 Exception-Spezifikation in Deklarationen
303
8.1.2 Exception-Hierarchie in C++
304
8.1.3 Besondere Fehlerbehandlungsfunktionen
306
8.1.4 Erkennen logischer Fehler
307
8.2 Speicherbeschaffung mit new
309
8.3 Exception-Sicherheit
312
9 Überladen von Operatoren
314
9.1 Rationale Zahlen — noch einmal
316
9.1.2 Ausgabeoperator <<
319
9.2 Eine Klasse für Vektoren
320
9.2.1 Index-Operator [ ]
323
9.2.2 Zuweisungsoperator =
325
9.2.3 Zuweisungsoperator und Vererbung
327
9.2.4 Mathematische Vektoren
331
9.2.5 Multiplikationsoperator
333
9.3 Inkrement-Operator ++
334
9.4 Typumwandlungsoperator
338
9.5 Smart Pointer:Operatoren -> und *
340
9.6 Objekt als Funktion
345
9.7 new und delete überladen
347
9.7.1 Speichermanagement mit malloc und free
350
9.7.2 Unterscheidung zwischen Heap- und Stack-Objekten
352
9.7.3 Fehlende delete-Anweisung entdecken
353
9.7.4 Eigene Speicherverwaltung
354
9.7.5 Empfehlungen im Umgang mit new und delete
358
9.8 Mehrdimensionale Matrizen
359
9.8.1 Zweidimensionale Matrix als Vektor von Vektoren
360
9.8.2 Dreidimensionale Matrix
363
10 Dateien und Ströme
366
10.1 Ausgabe
368
10.1.1 Formatierung der Ausgabe
368
10.2 Eingabe
371
10.3 Manipulatoren
374
10.3.1 Eigene Manipulatoren
377
10.4 Fehlerbehandlung
378
10.4.1 Exception ios::failure
380
10.5 Typumwandlung von Dateiobjekten nach bool
380
10.6 Arbeit mit Dateien
381
10.6.1 Positionierung in Dateien
382
10.6.2 Lesen und Schreiben in derselben Datei
383
10.7 Umleitung auf Strings
384
10.8 Ergänzungen
386
11 Einführung in die Standard Template Library(STL)
388
11.1 Das Konzept: Container, Iteratoren, Algorithmen
390
11.2 Iteratoren im Detail
394
11.3 Beispiel verkettete Liste
395
12 Reguläre Ausdrücke
400
12.1 Elemente regulärer Ausdrücke
401
12.1.1 Greedy oder lazy?
403
12.2 Interaktive Auswertung
404
12.3 Auszug des regex-APIs
407
12.4 Anwendungen
409
13 Threads
410
13.1 Die Klasse thread
414
13.2 Synchronisation
417
13.2.1 Thread-Group
419
13.3 Thread-Steuerung: pausieren, fortsetzen, beenden
420
13.4 Interrupt
425
13.5 Warten auf Ereignisse
427
13.6 Reader/Writer-Problem
432
13.6.1 Wenn Threads verhungern
436
13.6.2 Reader/Writer-Varianten
438
13.7 Thread-Sicherheit
439
II.Teil II: Bausteine komplexerAnwendungen
440
14 Grafische Benutzungsschnittstellen
442
14.1 Ereignisgesteuerte Programmierung
443
14.2 GUI-Programmierung mit Qt
444
14.2.1 Meta-Objektsystem
444
14.2.2 Der Programmablauf
445
14.2.3 Speicher sparen und lokal Daten sichern
446
14.3 Signale, Slots und Widgets
448
14.4 Dialog
456
14.5 Qt oder Boost?
459
14.5.1 Threads
460
14.5.2 Verzeichnisbaum durchwandern
461
15 Internet-Anbindung
464
15.1 Protokolle
465
15.2 Adressen
465
15.3 Socket
469
15.3.1 Bidirektionale Kommunikation
472
15.3.2 UDP-Sockets
474
15.3.3 Atomuhr mit UDP abfragen
475
15.4 HTTP
478
15.4.1 Verbindung mit GET
479
15.4.2 Verbindung mit POST
484
15.5 Mini-Webserver
484
16 Datenbankanbindung
494
16.1 C++-Interface
495
16.2 Anwendungsbeispiel
499
III.Teil III: Praktische Methoden und Werkzeuge der Softwareentwicklung
506
17 Abläufe automatisieren mit make
508
17.1 Quellen
509
17.2 Wirkungsweise
510
17.3 Variablen und Muster
512
17.4 Universelles Makefile für einfache Projekte
513
18 Unit-Test
516
18.1 Werkzeuge
517
18.2 Test Driven Development
518
18.3 Boost Unit Test Framework
519
18.3.1 Testaufbau
520
18.3.2 Beispiel: Testgetriebene Entwicklung einer Operatorfunktion
521
18.3.3 Fixture
525
18.3.4 Testprotokoll und Log-Level
526
18.3.5 Prüf-Makros
527
18.3.6 Kommandozeilen-Optionen
531
19 Werkzeuge zur Verwaltung von Projekten
532
19.1 Dokumentation und Strukturanalyse mit doxygen
532
19.1.1 Strukturanalyse
536
19.2 Versionskontrolle
537
19.2.1 Einrichtung des Servers
539
19.2.2 Exemplarische Benutzung
542
19.3 Projektverwaltung
544
19.3.1 Projektmanagement
544
19.3.2 Wiki für Software-Entwicklungsprojekte
544
IV.Teil IV: Das C++-Rezeptbuch:Tipps und Lösungen für typische Aufgaben
546
20 Sichere Programmentwicklung
548
20.1 Regeln zum Design von Methoden
548
20.2 Defensive Programmierung
551
20.2.1 double- und float-Werte richtig vergleichen
552
20.2.2 const verwenden
552
20.2.3 Anweisungen nach for/if/while einklammern
553
20.2.4 int und unsigned nicht mischen
553
20.2.5 Postfix++ mit Präfix++ implementieren
553
20.2.6 Ein Destruktor darf keine Exception werfen
554
20.2.7 Typumwandlungsoperatoren vermeiden
555
20.2.8 explicit-Konstruktoren bevorzugen
555
20.2.9 Leere Standardkonstruktoren vermeiden
555
20.2.10 Kopieren und Zuweisung verbieten
555
20.2.11 Vererbung verbieten
557
20.2.12 Defensiv Objekte löschen
558
20.3 Exception-sichere Beschaffung von Ressourcen
558
20.3.1 Sichere Verwendung von shared_ptr
558
20.3.2 shared_ptr für Arrays korrekt verwenden
559
20.3.3 Exception-sichere Funktion
559
20.3.4 Exception-sicherer Konstruktor
560
20.3.5 Exception-sichere Zuweisung
561
20.4 Aussagefähige Fehlermeldungohne neuen String erzeugen
563
20.5 Empfehlungen zur Thread-Programmierung
564
20.5.1 Warten auf die Freigabe von Ressourcen
564
20.5.2 Deadlock-Vermeidung
565
20.5.3 notify_all oder notify_one?
565
20.5.4 Performance mit Threads verbessern?
566
21 Von der UML nach C++
568
21.1 Vererbung
569
21.2 Interface anbieten und nutzen
569
21.3 Assoziation
571
21.3.1 Aggregation
574
21.3.2 Komposition
574
22 Performance, Wert- und Referenzsemantik
576
22.1 Performanceproblem Wertsemantik
578
22.2 Optimierung durch Referenzsemantik für R-Werte
579
22.3 Ein effizienter binärer Plusoperator
581
23 Effektive Programmerzeugung
586
23.1 Automatische Ermittlungvon Abhängigkeiten
587
23.1.1 Getrennte Verzeichnisse: src, obj, bin
588
23.2 Makefile für Verzeichnisbäume
590
23.2.1 Rekursive Make-Aufrufe
591
23.2.2 Ein Makefile für alles
593
23.3 Automatische Erzeugung von Makefiles
594
23.3.1 Makefile für rekursive Aufrufe erzeugen
595
23.4 Erzeugen von Bibliotheken
596
23.4.1 Statische Bibliotheksmodule
597
23.4.2 Dynamische Bibliotheksmodule
598
23.5 GNU Autotools
601
23.6 CMake
604
23.7 Code Bloat bei der Instanziierung von Templates vermeiden
604
23.7.1 extern-Template
606
23.7.2 Aufspaltung in Schnittstelle und Implementation
607
23.7.3 export-Template
608
24 Algorithmen für verschiedene Aufgaben
610
24.1 Algorithmen mit Strings
611
24.1.1 String splitten
611
24.1.2 String in Zahl umwandeln
612
24.1.3 Zahl in String umwandeln
613
24.1.4 Strings sprachlich richtig sortieren
614
24.1.5 Umwandlung in Klein- bzw. Großschreibung
615
24.1.6 Strings sprachlich richtig vergleichen
617
24.1.7 Von der Groß-/Kleinschreibung unabhängiger Zeichenvergleich
618
24.1.8 Von der Groß-/Kleinschreibung unabhängige Suche
619
24.2 Textverarbeitung
620
24.2.1 Datei durchsuchen
620
24.2.2 Ersetzungen in einer Datei
622
24.2.3 Code-Formatierer
624
24.2.4 Lines of Code (LOC) ermitteln
625
24.2.5 Zeilen, Wörter und Zeichen einer Datei zählen
627
24.2.6 CSV-Datei lesen
627
24.2.7 Kreuzreferenzliste
628
24.3 Operationen auf Folgen
631
24.3.1 Container anzeigen
631
24.3.2 Folge mit gleichen Werten initialisieren
632
24.3.3 Folge mit Werten eines Generators initialisieren
632
24.3.4 Folge mit fortlaufenden Werten initialisieren
633
24.3.5 Summe und Produkt
633
24.3.6 Mittelwert und Standardabweichung
634
24.3.7 Skalarprodukt
635
24.3.8 Folge der Teilsummen oder -produkte
636
24.3.9 Folge der Differenzen
637
24.3.10 Minimum und Maximum
638
24.3.11 Elemente rotieren
640
24.3.12 Elemente verwürfeln
641
24.3.13 Dubletten entfernen
642
24.3.14 Reihenfolge umdrehen
644
24.3.15 Anzahl der Elemente, die einer Bedingung genügen
645
24.3.16 Gilt X für alle, keins oder wenigstens ein Element einer Folge?
646
24.3.17 Permutationen
647
24.3.18 Lexikografischer Vergleich
648
24.4 Sortieren und Verwandtes
649
24.4.1 Partitionieren
649
24.4.2 Sortieren
651
24.4.3 Stabiles Sortieren
651
24.4.4 Partielles Sortieren
652
24.4.5 Das n.-größte oder n.-kleinste Element finden
653
24.4.6 Verschmelzen (merge)
654
24.5 Suchen und Finden
658
24.5.1 Element finden
658
24.5.2 Element einer Menge in der Folge finden
659
24.5.3 Teilfolge finden
660
24.5.4 Bestimmte benachbarte Elemente finden
662
24.5.5 Bestimmte aufeinanderfolgende Werte finden
663
24.5.6 Binäre Suche
665
24.6 Mengenoperationen aufsortierten Strukturen
668
24.6.1 Teilmengenrelation
668
24.6.2 Vereinigung
669
24.6.3 Schnittmenge
670
24.6.4 Differenz
670
24.6.5 Symmetrische Differenz
671
24.7 Heap-Algorithmen
672
24.7.1 pop_heap
673
24.7.2 push_heap
674
24.7.3 make_heap
675
24.7.4 sort_heap
675
24.7.5 is_heap
676
24.8 Vergleich von Containernauch ungleichen Typs
676
24.8.1 Unterschiedliche Elemente finden
676
24.8.2 Prüfung auf gleiche Inhalte
678
24.9 Rechnen mit komplexen Zahlen: Der C++-Standardtyp complex
679
24.10 Schnelle zweidimensionaleMatrix mit zusammenhängendem Speicher
681
24.10.1 Optimierung mathematischer Array-Operationen
686
24.11 Vermischtes
690
24.11.1 Erkennung eines Datums
690
24.11.2 Erkennung einer IP-Adresse
692
24.11.3 Erzeugen von Zufallszahlen
693
24.11.4 for_each — Auf jedem Element eine Funktion ausführen
694
24.11.5 Verschiedene Möglichkeiten, Container-Bereiche zu kopieren
694
24.11.6 Vertauschen von Elementen, Bereichen und Containern
697
24.11.7 Elemente transformieren
697
24.11.8 Ersetzen und Varianten
699
24.11.9 Elemente herausfiltern
701
24.11.10 Minimum und Maximum
702
24.11.11 Grenzwerte von Zahltypen
702
25 Ein- und Ausgabe
704
25.1 Datei- und Verzeichnisoperationen
704
25.1.1 Datei oder Verzeichnis löschen
705
25.1.2 Datei oder Verzeichnis umbenennen
706
25.1.3 Verzeichnis anlegen
707
25.1.4 Verzeichnis anzeigen
708
25.1.5 Verzeichnisbaum anzeigen
709
25.2 Tabelle formatiert ausgeben
711
25.3 Formatierte Daten lesen
712
25.3.1 Eingabe benutzerdefinierter Typen
712
25.4 Array als Block lesen oderschreiben
714
V.Teil V: Die C++-Standardbibliothek
716
26 Aufbau und Übersicht
718
26.1 Auslassungen
720
26.2 Beispiele des Buchs und die C++-Standardbibliothek
722
27 Hilfsfunktionen und -klassen
724
27.1 Relationale Operatoren
724
27.2 Unterstützung der Referenzsemantikfür R-Werte
725
27.3 Paare
728
27.4 Tupel
730
27.5 Funktionsobjekte
730
27.5.1 Arithmetische, vergleichende und logische Operationen
731
27.5.2 Funktionsobjekte zum Negieren logischer Prädikate
732
27.5.3 Binden von Argumentwerten
733
27.5.4 Zeiger auf Funktionen in Objekte umwandeln
734
27.6 Templates für rationale Zahlen
735
27.7 Zeit und Dauer
736
27.8 Hüllklasse für Referenzen
736
28 Container
738
28.1 Gemeinsame Eigenschaften
740
28.1.1 Initialisierungslisten
742
28.1.2 Konstruktion an Ort und Stelle
743
28.1.3 Reversible Container
743
28.2 Sequenzen
744
28.2.1 vector
745
28.2.2 vector<bool>
746
28.2.3 list
747
28.2.4 deque
749
28.2.5 stack
750
28.2.6 queue
752
28.2.7 priority_queue
753
28.2.8 array
755
28.3 Sortierte assoziative Container
757
28.3.1 map
757
28.3.2 multimap
761
28.3.3 set
762
28.3.4 multiset
765
28.4 Hash-Container
766
28.4.1 unordered_map
768
28.4.2 unordered_multimap
772
28.4.3 unordered_set
773
28.4.4 unordered_multiset
775
28.5 bitset
776
29 Iteratoren
780
29.1 Iterator-Kategorien
781
29.1.1 Anwendung von Traits
783
29.2 distance() und advance()
785
29.3 Reverse-Iteratoren
786
29.4 Insert-Iteratoren
787
29.5 Stream-Iteratoren
788
30 Algorithmen
790
30.1 Algorithmen mit Prädikat
791
30.1.1 Algorithmen mit binärem Prädikat
791
30.2 Übersicht
792
31 Nationale Besonderheiten
796
31.1 Sprachumgebungenfestlegen und ändern
797
31.1.1 Die locale-Funktionen
798
31.2 Zeichensätze und -codierung
799
31.3 Zeichenklassifizierung und-umwandlung
803
31.4 Kategorien
804
31.4.1 collate
804
31.4.2 ctype
805
31.4.3 numeric
806
31.4.4 monetary
808
31.4.5 time
811
31.4.6 messages
813
31.5 Konstruktion eigener Facetten
814
32 String
816
33 Speichermanagement
824
33.1 Smart Pointer unique_ptr, shared_ptr, weak_ptr
824
33.2 new mit vorgegebenem Speicherort
829
33.3 Hilfsfunktionen
830
34 Optimierte numerische Arrays (valarray)
832
34.1 Konstruktoren
833
34.2 Elementfunktionen
833
34.3 Binäre Valarray-Operatoren
836
34.4 Mathematische Funktionen
838
34.5 slice und slice_array
839
34.6 gslice und gslice_array
841
34.7 mask_array
844
34.8 indirect_array
845
35 C-Header
848
35.1 <cassert>
849
35.2 <cctype>
849
35.3 <cerrno>
850
35.4 <cmath>
850
35.5 <cstdarg>
851
35.6 <cstddef>
852
35.7 <cstdio>
852
35.8 <cstdlib>
852
35.9 <cstring>
854
35.10 <ctime>
856
A Anhang
858
A.1 Programmierhinweise
858
A.2 C++-Schlüsselwörter
861
A.3 ASCII-Tabelle
862
A.4 Rangfolge der Operatoren
863
A.5 Compilerbefehle
864
A.6 Änderungen des C++-Standards
865
A.6.1 Änderungen/Erweiterungen der C++-SpracheConcepts
865
A.6.2 Änderungen/Erweiterungen der C++-Standardbibliothek
872
A.7 Lösungen zu den Übungsaufgaben
873
Kapitel 1
874
Kapitel 2
880
Kapitel 3
882
Kapitel 4
889
Kapitel 5
894
Kapitel 6
897
Kapitel 7
901
Kapitel 9
903
Kapitel 11
911
Kapitel 13
912
Kapitel 24
913
Kapitel 28
915
Kapitel 30
916
A.8 Installation der DVD-Software für Windows
918
A.8.1 Installation des Compilers und einiger Bibliotheken
918
A.8.2 Bei Verzicht auf die automatische Installation
919
A.8.3 Codeblocks einrichten
920
A.8.4 Integration von Qt in ein Code::Blocks-Projekt
922
A.9 Installation der DVD-Softwarefür Linux
923
A.9.1 Installation des Compilers
923
A.9.2 Installation von Boost
924
A.9.3 Installation von Code::Blocks
924
A.9.4 Code::Blocks einrichten
925
A.9.5 Beispieldateien entpacken
925
A.9.6 Installation von Qt4
926
A.9.7 Integration von Qt in ein Code::Blocks-Projekt
927
Literaturverzeichnis
928
Glossar
932
Register
942
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion



















