C++ mit dem Borland C++-Builder 2007: Einführung in den C++-Standard und die objektorientierte Windows-Programmierung
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Medienkombination Buch |
Sprache: | German |
Veröffentlicht: |
Berlin [u.a.]
Springer
2008
|
Ausgabe: | 2. überarb. Aufl. |
Schriftenreihe: | Xpert.press
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XXIII, 1184 S. Ill., graph. Darst. 235 mm x 155 mm 1 CD-ROM (12 cm) |
ISBN: | 9783540695752 3540695753 |
Internformat
MARC
LEADER | 00000nom a2200000 c 4500 | ||
---|---|---|---|
001 | BV022311732 | ||
003 | DE-604 | ||
005 | 20180619 | ||
008 | 070314s2008 gw ||| 0| bnger d | ||
015 | |a 07,N07,0047 |2 dnb | ||
016 | 7 | |a 982667957 |2 DE-101 | |
020 | |a 9783540695752 |c : EUR 69.95, sfr 115.50 |9 978-3-540-69575-2 | ||
020 | |a 3540695753 |c : EUR 69.95, sfr 115.50 |9 3-540-69575-3 | ||
024 | 3 | |a 9783540695752 | |
028 | 5 | 2 | |a 11966036 |
035 | |a (OCoLC)635331171 | ||
035 | |a (DE-599)BVBBV022311732 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BE | ||
049 | |a DE-859 |a DE-M347 |a DE-1050 |a DE-1051 |a DE-20 |a DE-861 |a DE-11 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Kaiser, Richard |e Verfasser |0 (DE-588)1156684323 |4 aut | |
245 | 1 | 0 | |a C++ mit dem Borland C++-Builder 2007 |b Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |c Richard Kaiser |
250 | |a 2. überarb. Aufl. | ||
264 | 1 | |a Berlin [u.a.] |b Springer |c 2008 | |
300 | |a XXIII, 1184 S. |b Ill., graph. Darst. |c 235 mm x 155 mm |e 1 CD-ROM (12 cm) | ||
490 | 0 | |a Xpert.press | |
650 | 0 | 7 | |a Borland C++ Builder 7.0 |0 (DE-588)7604775-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Borland C++ Builder 7.0 |0 (DE-588)7604775-1 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 1 | 1 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 1 | |8 1\p |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2905088&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015521254&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-015521254 |
Datensatz im Suchindex
_version_ | 1805088789645754368 |
---|---|
adam_text |
RICHARD KAISER
MIT DEM
BORLAND C++BUILDER 2007
EINFUEHRUNG IN DEN C++-STANDARD
UND DIE OBJEKTORIENTIERTE
WINDOWS-PROGRAMMIERUNG
2. UEBERARBEITETE AUFLAGE
MIT CD-ROM
C++
SPRINGER
INHALT
1 DIE ENTWICKLUNGSUMGEBUNG 1
1.1 VISUELLE PROGRAMMIERUNG: EIN ERSTES KLEINES PROGRAMM 1
1.2 ERSTE SCHRITTE IN C++ 5
1.3 DER QUELLTEXTEDITOR 7
1.4 KONTEXTMENUES UND SYMBOLLEISTEN (TOOLBARS) 11
1.5 PROJEKTE, PROJEKTDATEIEN UND PROJEKTOPTIONEN 13
1.6 EINIGE TIPPS ZUR ARBEIT MIT PROJEKTEN 16
1.7 DIE ONLINE-HILFE 20
1.8 PROJEKTGRUPPEN UND DIE PROJEKTVERWALTUNG 9 22
1.9 HILFSMITTEL ZUR GESTALTUNG VON FORMULAREN 6 24
1.10 PACKAGES UND EIGENSTAENDIG AUSFUEHRBARE PROGRAMME 6 25
1.11 WIN32-APL UND KONSOLEN-ANWENDUNGEN 0 27
1.11.1 KONSOLEN-ANWENDUNGEN 6 27
1.11.2 DER START DES COMPILERS VON DER KOMMANDOZEILE 9 28
1.11.3 WIN32-API ANWENDUNGEN 9 28
1.12 WINDOWS-PROGRAMME UND UNITS 0 29
2 KOMPONENTEN FUER DIE BENUTZEROBERFLAECHE 31
2.1 DIE ONLINE-HILFE ZU DEN KOMPONENTEN 31
2.2 NAMEN 35
2.3 LABELS, DATENTYPEN UND COMPILER-FEHLERMELDUNGEN 38
2.4 FUNKTIONEN, METHODEN UND DIE KOMPONENTE TEDIT 43
2.5 MEMOS, LISTBOXEN, COMBOBOXEN UND DIE KLASSE TSTRINGS 47
2.6 BUTTONS UND EREIGNISSE 53
2.6.1 PARAMETER DER EREIGNISBEHANDLUNGSROUTINEN 54
2.6.2 DER FOKUS UND DIE TABULATORREIHENFOLGE 55
2.6.3 BITBUTTONS UND EINIGE WEITERE EIGENSCHAFTEN VON BUTTONS 56
2.7 CHECKBOXEN, RADIOBUTTONS UND EINFACHE ^ANWEISUNGEN 58
2.8 DIE CONTAINER GROUPBOX, PANEL UND PAGECONTROL 60
2.9 HAUPTMENUES UND KONTEXTMENUES 63
XIV INHALT
2.9.1 HAUPTMENUES UND DER MENUEDESIGNER 64
2.9.2 KONTEXTMENUES 65
2.9.3 DIE VERWALTUNG VON BILDERN MIT IMAGELIST G 66
2.9.4 MENUEVORLAGEN SPEICHERN UND LADEN 0 67
2.10 STANDARDDIALOGE 67
2.10.1 EINFACHE MELDUNGEN MIT SHOWMESSAGE 70
3 ELEMENTARE DATENTYPEN UND ANWEISUNGEN 73
3.1 SYNTAXREGELN 73
3.2 VARIABLEN UND BEZEICHNER 76
3.3 GANZZAHLDATENTYPEN 80
3.3.1 DIE INTERNE DARSTELLUNG VON GANZZAHLWERTEN 83
3.3.2 GANZZAHLLITERALE UND IHR DATENTYP 86
3.3.3 ZUWEISUNGEN UND STANDARDKONVERSIONEN BEI GANZZAHLAUSDRUECKEN.88
3.3.4 OPERATOREN UND DIE *UEBLICHEN ARITHMETISCHEN KONVERSIONEN" 91
3.3.5 DER DATENTYP BOOL 97
3.3.6 DIE C/WR-DATENTYPEN UND DER ASCII- UND ANSI-ZEICHENSATZ 101
3.3.7 DER DATENTYP _INT64 108
3.3.8 C++0X-ERWEITERUNGEN FUER GANZZAHLDATENTYPEN 0 108
3.4 KONTROLLSTRUKTUREN UND FUNKTIONEN 108
3.4.1 DIE IF- UND DIE VERBUNDANWEISUNG 109
3.4.2 WIEDERHOLUNGSANWEISUNGEN 113
3.4.3 FUNKTIONEN UND DER DATENTYP VOID 116
3.4.4 WERTE-UND REFERENZPARAMETER 120
3.4.5 DIE VERWENDUNG VON BIBLIOTHEKEN UND NAMENSBEREICHEN 121
3.4.6 ZUFALLSZAHLEN 122
3.5 TESTS UND DER INTEGRIERTE DEBUGGER 127
3.5.1 SYSTEMATISCHES TESTEN 127
3.5.2 TESTPROTOKOLLE UND TESTFUNKTIONEN FUER AUTOMATISIERTE TESTS 132
3.5.3 TESTS MIT DUNIT IM C++BUILDER 2007 136
3.5.4 DER INTEGRIERTE DEBUGGER 138
3.6 GLEITKOMMADATENTYPEN 142
3.6.1 DIE INTERNE DARSTELLUNG VON GLEITKOMMAWERTEN 143
3.6.2 DER DATENTYP VON GLEITKOMMALITERALEN 147
3.6.3 STANDARDKONVERSIONEN 148
3.6.4 MATHEMATISCHE FUNKTIONEN 153
3.6.5 DATENTYPEN FUER EXAKTE UND KAUFMAENNISCHE RECHNUNGEN 155
3.6.6 EIN KRITERIUM FUER ANNAEHERND GLEICHE GLEITKOMMAZAHLEN 162
3.7 ABLAUFPROTOKOLLE UND PROGRAMMIERLOGIK 165
3.7.1 ABLAUFPROTOKOLLE 166
3.7.2 SCHLEIFENINVARIANTEN MIT ABLAUFPROTOKOLLEN ERKENNEN 169
3.7.3 SYMBOLISCHE ABLAUFPROTOKOLLE 173
3.7.4 SCHLEIFENINVARIANTEN, ABLAUFPROTOKOLLE, VOLLSTAENDIGE INDUKTION 0
180
3.7.5 VERIFIKATIONEN, TESTS UND BEDINGUNGEN ZUR LAUFZEIT PRUEFEN 187
3.7.6 FUNKTIONSAUFRUFE UND PROGRAMMIERSTIL FUER FUNKTIONEN 191
INHALT XV
3.7.7 EINFACHE LOGISCHE REGELN UND WAHRHEITSTABELLEN 0 198
3.7.8 BEDINGUNGEN IN UND NACH /^ANWEISUNGEN UND SCHLEIFEN G 200
3.8 KONSTANTEN 209
3.9 SYNTAXREGELN FUER DEKLARATIONEN UND INITIALISIERUNGEN 212
3.10 ARRAYS UND CONTAINER 214
3.10.1 EINFACHE ^ECFE/^DEKLARATIONEN 215
3.10.2 EINDIMENSIONALE ARRAYS 215
3.10.3 DIE INITIALISIERUNG VON ARRAYS BEI IHRER DEFINITION 223
3.10.4 ARRAYS ALS CONTAINER 225
3.10.5 MEHRDIMENSIONALE ARRAYS 232
3.10.6 DYNAMISCHE PROGRAMMIERUNG 236
3.10.7 ARRAY-EIGENSCHAFTEN DER VCL 9 237
3.11 STRUKTUREN UND KLASSEN 238
3.11.1 MIT STRUCT DEFINIERTE KLASSEN 238
3.11.2 MIT UNION DEFINIERTE KLASSEN 9 245
3.11.3 DIE DATENTYPEN TVARREC UND VARIANTQ 248
3.11.4 BITFELDER 9 250
3.12 ZEIGER, STRINGS UND DYNAMISCH ERZEUGTE VARIABLEN 252
3.12.1 DIE DEFINITION VON ZEIGERVARIABLEN 254
3.12.2 DER ADRESSOPERATOR, ZUWEISUNGEN UND GENERISCHE ZEIGER 257
3.12.3 ABLAUFPROTOKOLLE FUER ZEIGERVARIABLE 261
3.12.4 DYNAMISCH ERZEUGTE VARIABLEN: EWUND DELETE 262
3.12.5 GARBAGE COLLECTION MIT DER SMART POINTER KLASSE SHAREDJPTR 272
3.12.6 DYNAMISCHE ERZEUGTE EINDIMENSIONALE ARRAYS 274
3.12.7 ARRAYS, ZEIGER UND ZEIGERARITHMETIK 276
3.12.8 ARRAYS ALS FUNKTIONSPARAMETER 9 280
3.12.9 KONSTANTE ZEIGER 283
3.12.10 STRINGLITERALE, NULLTERMINIERTE STRINGS UND CHAR*-ZEIGER 285
3.12.11 VERKETTETE LISTEN 292
3.12.12 BINAERBAEUME 303
3.12.13 ZEIGER ALS PARAMETER UND WIN32 API FUNKTIONEN 306
3.12.14 BIBLIOTHEKSFUNKTIONEN FUER NULLTERMINIERTE STRINGS 9 310
3.12.15 DIE ERKENNUNG VON *MEMORY LEAKS" MIT CODEGUARD 9 314
3.12.16 ZEIGERAUF ZEIGER AUF ZEIGER AUF. 9 315
3.12.17 DYNAMISCH ERZEUGTE MEHRDIMENSIONALE ARRAYS 0 316
3.13 DIE STRINGKLASSE ANSISTRING 320
3.13.1 DIE DEFINITION VON VARIABLEN EINES KLASSENTYPS 321
3.13.2 FUNKTIONEN DER KLASSE ANSISTRING 323
3.13.3 GLOBALE ANSISTRING-FUNKTIONEN 326
3.14 DEKLARATIONEN MIT TYPEDEF UND Z}Y EZ I-AUSDRUECKE 333
3.15 AUFZAEHLUNGSTYPEN 336
3.15.1 ENUM KONSTANTEN UND KONVERSIONEN 9 339
3.16 KOMMENTARE UND INTERNE PROGRAMMDOKUMENTATION 340
3.17 GLOBALE, LOKALE UND DYNAMISCHE VARIABLEN 344
3.17.1 DIE DEKLARATIONSANWEISUNG 344
3.17.2 DIE VERBUNDANWEISUNG UND DER LOKALE GUELTIGKEITSBEREICH 345
3.17.3 STATISCHE LOKALE VARIABLEN 348
XVI INHALT
3.17.4 LEBENSDAUER VON VARIABLEN UND SPEICHERKLASSENSPEZIFIZIERER G
.349
3.18 REFERENZTYPEN, WERTE-UND REFERENZPARAMETER 352
3.18.1 WERTEPARAMETER 353
3.18.2 REFERENZPARAMETER 354
3.18.3 KONSTANTE REFERENZPARAMETER 356
3.19 WEITERE ANWEISUNGEN 358
3.19.1 DIE AUSDRUCKSANWEISUNG 358
3.19.2 EXCEPTION HANDLING: TRY UND THROW 360
3.19.3 DIE SWZ'FC/Z-ANWEISUNG 9 365
3.19.4 DIE DO-ANWEISUNG 9 368
3.19.5 DIE FOR- AN WEISUNG 9 369
3.19.6 DIE SPRUNGANWEISUNGEN GOTO, BREAK UND CONTINUE 9 372
3.19.7 ASSEMBLER-ANWEISUNGEN 9 375
3.20 AUSDRUECKE 376
3.20.1 PRIMAERE AUSDRUECKE 9 377
3.20.2 POSTFIX-AUSDRUECKE 9 379
3.20.3 UNAERE AUSDRUECKE 9 380
3.20.4 TYPKONVERSIONEN IN TYPECAST-SCHREIBWEISE 9 383
3.20.5 ZEIGER AUF KLASSENELEMENTE 9 383
3.20.6 MULTIPLIKATIVE GPERATOREN 9 383
3.20.7 ADDITIVE OPERATOREN 9 384
3.20.8 SHIFT-OPERATOREN 9 384
3.20.9 VERGLEICHSOPERATOREN 9 385
3.20.10 GLEICHHEITSOPERATOREN 9 386
3.20.11 BITWEISE OPERATOREN G 387
3.20.12 LOGISCHE OPERATOREN G 388
3.20.13 DER BEDINGUNGSOPERATOR G 388
3.20.14 KONSTANTE AUSDRUECKE G 390
3.20.15 ZUWEISUNGSOPERATOREN 390
3.20.16 DER KOMMA-OPERATOR G 392
3.20.17 L-WERTE UND R-WERTE G 393
3.20.18 DIE PRIORITAET UND ASSOZIATIVITAET DER OPERATOREN 0 393
3.20.19 ALTERNATIVE ZEICHENFOLGEN 0 396
3.20.20 EXPLIZITE TYPKONVERSIONEN O 398
3.21 NAMENSBEREICHE 405
3.21.1 DIE DEFINITION VON BENANNTEN NAMENSBEREICHEN 406
3.21.2 DIE VERWENDUNG VON NAMEN AUS NAMENSBEREICHEN 409
3.21.3 ALIASNAMEN FUER NAMENSBEREICHE 412
3.21.4 UNBENANNTE NAMENSBEREICHE 413
3.22 PRAEPROZESSORANWEISUNGEN 416
3.22.1 DIE #/C/WE-ANWEISUNG 417
3.22.2 MAKROS O 418
3.22.3 BEDINGTE KOMPILATION G 423
3.22.4 PRAGMAS G 428
3.23 SEPARATE KOMPILATION UND STATISCHE BIBLIOTHEKEN 431
3.23.1 C++-DATEIEN, HEADER-DATEIEN UND OBJECT-DATEIEN 432
3.23.2 BINDUNG G 433
INHALT XVII
3.23.3 DEKLARATIONEN UND DEFINITIONEN 9 435
3.23.4 DIE *9NE DEFINITION RULE" 9 437
3.23.5 DIE ELEMENTE VON HEADER-DATEIEN UND C++-DATEIEN 9 439
3.23.6 9BJECT-DATEIEN UND STATISCHE BIBLIOTHEKEN LINKEN 9 441
3.23.7 DER AUFRUF VON IN C GESCHRIEBENEN FUNKTIONEN 9 441
3.24 DYNAMIC LINK LIBRARIES (DLLS) 443
3.24.1 DLLS ERZEUGEN 9 444
3.24.2 IMPLIZIT GELADENE DLLS 9 446
3.24.3 EXPLIZIT GELADENE DLLS 9 448
3.24.4 HILFSPROGRAMME ZUR IDENTIFIZIERUNG VON FUNKTIONEN IN DLLS 9
.449
3.24.5 DLLS MIT VCL KOMPONENTEN 9 451
3.24.6 DIE VERWENDUNG VON MS VISUAL C++ DLLS IM C++BUILDER 9 452
4 EINIGE KLASSEN DER STANDARDBIBLIOTHEK 457
4.1 DIE STRINGKLASSEN STRING UND WSTRING 458
4.1.1 ANSISTRING UND STRING: GEMEINSAMKEITEN UND UNTERSCHIEDE 458
4.1.2 EINIGE ELEMENTFUNKTIONEN DER KLASSE STRING 461
4.1.3 STRINGSTREAMS 464
4.2 SEQUENZIELLE CONTAINER DER STANDARDBIBLIOTHEK 469
4.2.1 DIE CONTAINER-KLASSE VECTOR 469
4.2.2 ITERATOREN 473
4.2.3 ALGORITHMEN DER STANDARDBIBLIOTHEK 476
4.2.4 DIE SPEICHERVERWALTUNG BEI VEKTOREN 9 482
4.2.5 MEHRDIMENSIONALE VEKTOREN 9 484
4.2.6 DIE CONTAINER-KLASSEN LIST UND DEQUE 485
4.2.7 GEMEINSAMKEITEN UND UNTERSCHIEDE DER SEQUENZIELLEN CONTAINER.487
4.2.8 DIE CONTAINER-ADAPTER STACH, QUEUE UNDPRIORITY_QUEUE 9 489
4.2.9 CONTAINER MIT ZEIGERN 491
4.2.10 DIE VERSCHIEDENEN STL-IMPLEMENTATIONEN IM C++BUILDER 9 491
4.2.11 DIE CONTAINER-KLASSE BITSET 9 492
4.3 DATEIBEARBEITUNG MIT DEN STREAM-KLASSEN 493
4.3.1 STREAM-VARIABLEN, IHRE VERBINDUNG MIT DATEIEN UND IHR ZUSTAND
.494
4.3.2 FEHLER UND DER ZUSTAND VON STREAM-VARIABLEN 498
4.3.3 LESEN UND SCHREIBEN VON BINAERDATEN MIT READXMD WRITE 499
4.3.4 LESEN UND SCHREIBEN VON DATEN MIT DEN OPERATOREN UND .508
4.3.5 MANIPULATOREN UND FUNKTIONEN ZUR FORMATIERUNG VON TEXTEN 9 . 516
4.3.6 DATEIBEARBEITUNG IM DIREKTZUGRIFF 9 519
4.3.7 SORTIEREN, MISCHEN UND GRUPPENVERARBEITUNG 9 522
4.3.8 C-FUNKTIONEN ZUR DATEIBEARBEITUNG 9 529
4.4 ASSOZIATIVE CONTAINER 532
4.4.1 DIE CONTAINER SET UND MULTISET 533
4.4.2 DIE CONTAINER MAP UND MULTIMAP 534
4.4.3 ITERATOREN DER ASSOZIATIVEN CONTAINER 536
4.5 DIE NUMERISCHEN KLASSEN DER STANDARDBIBLIOTHEK 539
4.5.1 KOMPLEXE ZAHLEN 9 540
XV111
INHALT
4.5.2 VALARRAYS9 543
4.6 C++OX-ERWEITERUNGEN DER STANDARDBIBLIOTHEK 0 545
4.6.1 UNGEORDNETE ASSOZIATIVE CONTAINER (HASH CONTAINER) 545
4.6.2 DIE INSTALLATION DER BOOST-BIBLIOTHEKEN 6 549
4.6.3 FIXED SIZE ARRAY CONTAINER 0 552
4.6.4 TUPELG 553
5 FUNKTIONEN 557
5.1 DIE VERWALTUNG VON FUNKTIONSAUFRUFEN UEBER DEN STACK 558
5.1.1 AUFRUFKONVENTIONEN 9 561
5.2 FUNKTIONSZEIGER UND DER DATENTYP EINER FUNKTION 561
5.2.1 DER DATENTYP EINER FUNKTION 561
5.2.2 ZEIGER AUF FUNKTIONEN 563
5.3 REKURSION 569
5.3.1 GRUNDLAGEN 570
5.3.2 QUICKSORT 576
5.3.3 EIN REKURSIV ABSTEIGENDER PARSER 580
5.3.4 REKURSIV DEFINIERTE KURVEN 9 585
5.3.5 INDIREKTE REKURSION 9 588
5.3.6 REKURSIVE DATENSTRUKTUREN UND BINAERE SUCHBAEUME 588
5.3.7 VERZEICHNISSE REKURSIV NACH DATEIEN DURCHSUCHEN 9 593
5.4 FUNKTIONEN UND PARAMETER 9 596
5.4.1 SEITENEFFEKTE UND DIE REIHENFOLGE VON AUSWERTUNGEN 9 596
5.4.2 SYNTAXREGELN FUER FUNKTIONEN 9 599
5.4.3 DER FUNKTIONSBEGRIFF IN DER MATHEMATIK UND IN C++ 9 602
5.4.4 DER AUFRUF VON FUNKTIONEN AUS DELPHI IM C++BUILDER 9 603
5.4.5 UNSPEZIFIZIERTE ANZAHL UND TYPEN VON ARGUMENTEN 9 604
5.4.6 DIE FUNKTIONEN MAIN BZW. WINMAIN UND IHRE PARAMETER 9 606
5.4.7 TRADITIONELLE K&R-FUNKTIONSDEFINITIONEN 0 608
5.5 DEFAULT-ARGUMENTE 610
5.6 MINE-FUNKTIONEN 611
5.7 UEBERLADENE FUNKTIONEN 614
5.7.1 FUNKTIONEN, DIE NICHT UEBERLADEN WERDEN KOENNEN 616
5.7.2 REGELN FUER DIE AUSWAHL EINER PASSENDEN FUNKTION 617
5.8 UEBERLADENE OPERATOREN MIT GLOBALEN OPERATORFUNKTIONEN 623
5.8.1 GLOBALE OPERATORFUNKTIONEN 625
5.8.2 DIE INKREMENT- UND DEKREMENTOPERATOREN 627
5.8.3 REFERENZEN ALS FUNKTIONSWERTE 629
5.8.4 DIE EIN- UND AUSGABE VON SELBST DEFINIERTEN DATENTYPEN 631
INHALT XIX
6 OBJEKTORIENTIERTE PROGRAMMIERUNG 635
6.1 KLASSEN 636
6.1.1 DATENELEMENTE UND ELEMENTFUNKTIONEN 636
6.1.2 DER GUELTIGKEITSBEREICH VON KLASSENELEMENTEN 640
6.1.3 DATENKAPSELUNG: DIE ZUGRIFFSRECHTE PRIVATE UNDPUBLIC 644
6.1.4 DER AUFRUF VON ELEMENTFUNKTIONEN UND DER THIS-ZEIGER 650
6.1.5 KONSTRUKTOREN UND DESTRUKTOREN 652
6.1.6 OO ANALYSE UND DESIGN: DER ENTWURF VON KLASSEN 664
6.1.7 PROGRAMMIERLOGIK: KLASSENINVARIANTEN UND KORREKTHEIT 672
6.1.8 UML-DIAGRAMME MIT TOGETHER IM C++BUILDER 2007 679
6.2 KLASSEN ALS DATENTYPEN 682
6.2.1 DER STANDARDKONSTRUKTOR 683
6.2.2 OBJEKTE ALS KLASSENELEMENTE UND ELEMENTINITIALISIERER 685
6.2.3 /HEWRF-FUNKTIONEN UND -KLASSEN 690
6.2.4 UEBERLADENE OPERATOREN ALS ELEMENTFUNKTIONEN 693
6.2.5 DER COPY-KONSTRUKTOR 702
6.2.6 DER ZUWEISUNGSOPERATOR = FUER KLASSEN 709
6.2.7 BENUTZERDEFINIERTE KONVERSIONEN 717
6.2.8 EXPLIZITE KONSTRUKTOREN O 722
6.2.9 STATISCHE KLASSENELEMENTE 723
6.2.10 KONSTANTE KLASSENELEMENTE UND OBJEKTE 725
6.2.11 KLASSEN UND HEADER-DATEIEN 728
6.3 VERERBUNG UND KOMPOSITION 731
6.3.1 DIE ELEMENTE VON ABGELEITETEN KLASSEN 732
6.3.2 ZUGRIFFSRECHTE AUF DIE ELEMENTE VON BASISKLASSEN 734
6.3.3 DIE BEDEUTUNG VON ELEMENTNAMEN IN EINER KLASSENHIERARCHIE 736
6.3.4 I/G-DEKLARATIONEN IN ABGELEITETEN KLASSEN O 738
6.3.5 KONSTRUKTOREN, DESTRUKTOREN UND IMPLIZIT ERZEUGTE FUNKTIONEN 739
6.3.6 VERERBUNG BEI FORMULAREN IM C++BUILDER 745
6.3.7 OO DESIGN: PUBLIC VERERBUNG UND *IST EIN"-BEZIEHUNGEN 746
6.3.8 OO DESIGN: KOMPOSITION UND *HAT EIN"-BEZIEHUNGEN 751
6.3.9 KONVERSIONEN ZWISCHEN PUBLIC ABGELEITETEN KLASSEN 753
6.3.10 PROTECTED UND PRIVATE ABGELEITETE KLASSEN O 758
6.3.11 MEHRFACHVERERBUNG UND VIRTUELLE BASISKLASSEN 761
6.4 VIRTUELLE FUNKTIONEN, SPAETE BINDUNG UND POLYMORPHIE 768
6.4.1 DER STATISCHE UND DER DYNAMISCHE DATENTYP 768
6.4.2 VIRTUELLE FUNKTIONEN 769
6.4.3 DIE IMPLEMENTIERUNG VON VIRTUELLEN FUNKTIONEN: VPTR UND VTBL 780
6.4.4 VIRTUELLE KONSTRUKTOREN UND DESTRUKTOREN 786
6.4.5 VIRTUELLE FUNKTIONEN IN KONSTRUKTOREN UND DESTRUKTOREN 788
6.4.6 OO-DESIGN: EINSATZBEREICH UND TEST VON VIRTUELLEN
FUNKTIONEN.789
6.4.7 OO-DESIGN UND ERWEITERBARKEIT 791
6.4.8 REIN VIRTUELLE FUNKTIONEN UND ABSTRAKTE BASISKLASSEN 794
6.4.9 OO-DESIGN: VIRTUELLE FUNKTIONEN UND ABSTRAKTE BASISKLASSEN 798
6.4.10 OOAD: ZUSAMMENFASSUNG 800
6.4.11 INTERFACES UND MEHRFACHVERERBUNG 804
XX INHALT
6.4.12 ZEIGER AUF KLASSENELEMENTE G 805
6.4.13 UML-DIAGRAMME FUER VERERBUNG UND KOMPOSITION 810
6.5 LAUFZEIT-TYPINFORMATIONEN 812
6.5.1 TYPINFORMATIONEN MIT DEM OPERATOR TYPEID G 813
6.5.2 TYPKONVERSIONEN MIT DYNAMIC_CAST G 816
6.5.3 ANWENDUNGEN VON LAUFZEIT-TYPINFORMATIONEN G 819
6.5.4 STATIC_CAST MIT KLASSEN G 822
6.5.5 LAUFZEIT-TYPINFORMATIONEN FUER DIE KLASSEN DER VCL G 823
7 EXCEPTION-HANDLING 827
7.1 DIE FRY-ANWEISUNG 828
7.2 EXCEPTION-HANDLER UND EXCEPTIONS DER STANDARDBIBLIOTHEK 831
7.3 VORDEFINIERTE EXCEPTIONS DER VCL 836
7.4 DER PROGRAMMABLAUF BEI EXCEPTIONS 838
7.5 DAS VORDEFINIERTE EXCEPTION-HANDLING DER VCL 841
7.6 ?/JROW-AUSDRUECKE UND SELBST DEFINIERTE EXCEPTIONS 842
7.7 FEHLER, EXCEPTIONS UND DIE KORREKTHEIT VON PROGRAMMEN 848
7.8 DIE FREIGABE VON RESSOURCEN BEI EXCEPTIONS 851
7.9 EXCEPTIONS IN KONSTRUKTOREN UND DESTRUKTOREN 854
7.10 EXCEPTION-SPEZIFIKATIONEN 859
7.11 DIE FUNKTION TERMINALE G 861
7.12 DAS WIN32-EXCEPTION-HANDLING MIT TRY- EXCEPT G 862
8 DIE BIBLIOTHEK DER VISUELLEN KOMPONENTEN (VCL) 863
8.1 BESONDERHEITEN DER VCL 864
8.2 VISUELLE PROGRAMMIERUNG UND PROPERTIES (EIGENSCHAFTEN) 868
8.2.1 LESEN UND SCHREIBEN VON EIGENSCHAFTEN 868
8.2.2 ARRAY-PROPERTIES G 871
8.2.3 INDEXANGABEN G 873
8.2.4 DIE SPEICHERUNG VON EIGENSCHAFTEN IN DER FORMULARDATEI G 874
8.2.5 DIE REDEKLARATION VON EIGENSCHAFTEN 876
8.3 DIE KLASSENHIERARCHIE DER VCL 876
8.4 SELBST DEFINIERTE KOMPONENTEN UND IHRE EREIGNISSE 884
8.5 DIE ERWEITERUNG DER TOOL-PALETTE 892
8.6 KLASSENREFERENZTYPEN UND VIRTUELLE KONSTRUKTOREN 898
8.7 BOTSCHAFTEN (MESSAGES) 903
8.7.1 DIE MESSAGE QUEUE UND DIE WINDOW-PROZEDUR 903
8.7.2 BOTSCHAFTEN FUER EINE ANWENDUNG 906
8.7.3 BOTSCHAFTEN FUER EIN STEUERELEMENT 907
8.7.4 SELBST DEFINIERTE REAKTIONEN AUF BOTSCHAFTEN 909
8.7.5 BOTSCHAFTEN VERSENDEN 914
INHALT XXI
9 TEMPLATES UND DIE STL 920
9.1 GENERISCHE FUNKTIONEN: FUNKTIONS-TEMPLATES 921
9.1.1 DIE DEKLARATION VON FUNKTIONS-TEMPLATES MIT TYP-PARAMETERN .922
9.1.2 SPEZIALISIERUNGEN VON FUNKTIONS-TEMPLATES 923
9.1.3 FUNKTIONS-TEMPLATES MIT NICHT-TYP-PARAMETERN 930
9.1.4 EXPLIZIT INSTANZIIERTE FUNKTIONS-TEMPLATES 8 931
9.1.5 EXPLIZIT SPEZIALISIERTE UND UEBERLADENE TEMPLATES 932
9.1.6 REKURSIVE FUNKTIONS-TEMPLATES G 936
9.2 GENERISCHE KLASSEN: KLASSEN-TEMPLATES 939
9.2.1 DIE DEKLARATION VON KLASSEN-TEMPLATES MIT TYP-PARAMETERN 940
9.2.2 SPEZIALISIERUNGEN VON KLASSEN-TEMPLATES 941
9.2.3 TEMPLATES MIT NICHT-TYP-PARAMETERN 949
9.2.4 EXPLIZIT INSTANZIIERTE KLASSEN-TEMPLATES 6 950
9.2.5 PARTIELLE UND VOLLSTAENDIGE SPEZIALISIERUNGEN 0 951
9.2.6 ELEMENTE UND^HEND-FUNKTIONEN VON KLASSEN-TEMPLATES 6 957
9.2.7 ABLEITUNGEN VON TEMPLATES 0 961
9.2.8 UML-DIAGRAMME FUER PARAMETRISIERTE KLASSEN 0 962
9.3 FUNKTIONSOBJEKTE IN DER STL 965
9.3.1 DER AUFRUFOPERATOR () 965
9.3.2 PRAEDIKATE UND ARITHMETISCHE FUNKTIONSOBJEKTE 968
9.3.3 BINDER, FUNKTIONSADAPTER UND C++OX-ERWEITERUNGEN 973
9.4 ITERATOREN UND DIE STL-ALGORITHMEN 980
9.4.1 DIE VERSCHIEDENEN ARTEN VON ITERATOREN 981
9.4.2 UMKEHRITERATOREN 983
9.4.3 EINFUEGEFUNKTIONEN UND EINFUEGEITERATOREN 984
9.4.4 STREAM-ITERATOREN 986
9.4.5 CONTAINER-KONSTRUKTOREN MIT ITERATOREN 987
9.4.6 STL-ALGORITHMEN FUER ALLE ELEMENTE EINES CONTAINERS 988
9.5 DIE ALGORITHMEN DER STL 991
9.5.1 LINEARES SUCHEN 991
9.5.2 ZAEHLEN 993
9.5.3 DER VERGLEICH VON BEREICHEN 994
9.5.4 SUCHE NACH TEILFOLGEN 995
9.5.5 MINIMUM UND MAXIMUM 996
9.5.6 ELEMENTE VERTAUSCHEN 998
9.5.7 KOPIEREN VON BEREICHEN 998
1
9.5.8 ELEMENTE TRANSFORMIEREN UND ERSETZEN 1000
9.5.9 ELEMENTEN IN EINEM BEREICH WERTE ZUWEISEN 1002
9.5.10 ELEMENTE ENTFERNEN 1002
9.5.11 DIE REIHENFOLGE VON ELEMENTEN VERTAUSCHEN 1004
9.5.12 PERMUTATIONEN 1005
9.5.13 PARTITIONEN 1006
9.5.14 BEREICHE SORTIEREN 1007
9.5.15 BINAERES SUCHEN IN SORTIERTEN BEREICHEN 1008
9.5.16 MISCHEN VON SORTIERTEN BEREICHEN 1009
9.5.17 MENGENOPERATIONEN AUF SORTIERTEN BEREICHEN 1010
XXII INHALT
9.5.18 HEAP-OPERATIONEN 1012
9.5.19 VERALLGEMEINERTE NUMERISCHE OPERATIONEN 1013
10 VERSCHIEDENES 1015
10.1 SYMBOLLEISTEN, MENUES UND AKTIONEN 1015
10.1.1 SYMBOLLEISTEN MIT PANELS UND SPEEDBUTTONS 1016
10.1.2 SYMBOLLEISTEN MIT TOOLBARS 1016
10.1.3 VERSCHIEBBARE KOMPONENTEN MIT COOLBAR UND CONTROLBAR 1017
10.1.4 DIE VERWALTUNG VON AKTIONEN 1017
10.2 EIGENE DIALOGE, FRAMES UND DIE OBJEKTABLAGE 1023
10.2.1 DIE ANZEIGE VON WEITEREN FORMULAREN UND MODALE FENSTER 1023
10.2.2 VORDEFINIERTE DIALOGFELDER DER OBJEKTABLAGE 1026
10.2.3 FUNKTIONEN, DIE VORDEFINIERTE DIALOGFELDER ANZEIGEN 1027
10.2.4 DIE ERWEITERUNG DER TOOL-PALETTE MIT FRAMES 1029
10.2.5 DATENMODULE 1030
10.2.6 DIE OBJEKTABLAGE 1030
10.3 GROESSENAENDERUNG VON STEUERELEMENTEN ZUR LAUFZEIT 1031
10.3.1 DIE EIGENSCHAFTENALIGN UNDANCHOR 1031
10.3.2 DIE KOMPONENTEN SPLITTER UND HEADERCONTROL 1032
10.3.3 GRIDPANEL: TABELLEN MIT STEUERELEMENTEN 1033
10.3.4 AUTOMATISCH ANGEORDNETE STEUERELEMENTE: FLOWPANEL 1035
10.4 LISTVIEW UND TREEVIEW 1035
10.4.1 DIE ANZEIGE VON LISTEN MIT LISTVIEW 1035
10.4.2 LISTVIEWNACH SPALTEN SORTIEREN 1038
10.4.3 DIE ANZEIGE VON BAUMDIAGRAMMEN MIT TREEVIEW 1040
10.5 FORMATIERTE TEXTE MIT DER RICHEDIT-KOMPONENTE 1045
10.6 TABELLEN 1047
10.7 SCHIEBEREGLER: SCROLLBAR UND TRACKBAR 1049
10.8 WEITERE EINGABEKOMPONENTEN 1051
10.8.1 TEXTEINGABEN MIT MASKEDIT FILTERN 1051
10.8.2 DIE AUSWAHL VON LAUFWERKEN UND VERZEICHNISSEN 1053
10.9 STATUS- UND FORTSCHRITTSANZEIGEN 1055
10.10 KLASSEN UND FUNKTIONEN ZU UHRZEIT UND KALENDERDATUM 1056
10.10.1 TDATETIME-FUNKTIONEN 1056
10.10.2 ZEITGESTEUERTE EREIGNISSE MIT EINEM TIMER 1058
10.10.3 HOCHAUFLOESENDE ZEITMESSUNG 1059
10.10.4 KALENDERDATEN UND ZEITEN EINGEBEN 1060
10.11 MULTITASKING UND THREADS 1062
10.11.1 MULTITHREADING MIT DER KLASSE TTHREAD 1063
10.11.2 DER ZUGRIFF AUF VCL-ELEMENTE MIT SYNCHRONIZE 1065
10.11.3 KRITISCHE ABSCHNITTE UND DIE SYNCHRONISATION VON THREADS 1067
10.12 TRAYLCON 1069
10.13 TCANVAS UND TIMAGE: GRAFIKEN ANZEIGEN UND ZEICHNEN 1070
10.13.1 GRAFIKEN ANZEIGEN MIT TIMAGE 1070
10.13.2 GRAFIKEN ZEICHNEN MIT TCANVAS 1070
INHALT XXIII
10.13.3 WELT-UND BILDSCHIRMKOORDINATEN 1071
10.13.4 FIGUREN, FARBEN, STIFTE UND PINSEL 1073
10.13.5 TEXT AUF EINEN CANVAS SCHREIBEN 1075
10.13.6 DRUCKEN MIT TPRINTER 1076
10.13.7 GRAFIKEN IM BMP- UND WMF-FORMAT SPEICHERN 1077
10.13.8 AUF DEN CANVAS EINER PAINTBOX ODER EINES FORMULARS ZEICHNEN
.1078
10.14 DIE STEUERUNG VON MS-OFFICE: WORD-DOKUMENTE ERZEUGEN 1085
10.15 DATENBANK-KOMPONENTEN DER VCL 1088
10.15.1 VERBINDUNG MIT ADO-DATENBANKEN - DER CONNECTION-STRING 1089
10.15.2 TABELLEN UND DIE KOMPONENTE TDATASET 1096
10.15.3 TABELLENDATEN LESEN UND SCHREIBEN 1098
10.15.4 DIE ANZEIGE VON TABELLEN MIT EINEM DBGRID 1101
10.15.5 SQL-ABFRAGEN 1102
10.16 INTERNET-KOMPONENTEN 1104
10.17 MDI-PROGRAMME 1107
10.18 DIE KLASSE SET 1110
10.19 3D-GRAFIK MIT OPENGL 1113
10.19.1 INITIALISIERUNGEN 1114
10.19.2 GRAFISCHE GRUNDELEMENTE: PRIMITIVE 1117
10.19.3 MODELLTRANSFORMATIONEN 1121
10.19.4 VORDEFINIERTE KOERPER 1124
10.19.5 LOKALE TRANSFORMATIONEN 1126
10.19.6 BELEUCHTUNGSEFFEKTE 1129
10.19.7 TEXTUREN 1132
10.20 WIN32-FUNKTIONEN ZUR DATEIBEARBEITUNG 1136
10.20.1 ELEMENTARE FUNKTIONEN 1137
10.20.2 FILE-SHARING 1140
10.20.3 RECORD-LOCKING 1141
10.20.4 VCL-FUNKTIONEN ZUR DATEIBEARBEITUNG UND TFILESTREAM 1142
10.21 DATENUEBERTRAGUNG UEBER DIE SERIELLE SCHNITTSTELLE 1145
10.21.1 GRUNDBEGRIFFE 1145
10.21.2 STANDARDS FUER DIE SERIELLE SCHNITTSTELLE: RS-232C BZW. V.24 1146
10.21.3 WIN32-FUNKTIONEN ZUR SERIELLEN KOMMUNIKATION 1148
LITERATURVERZEICHNIS 1153
INHALT BUCH-CD 1159
INDEX 1161
6 ANGESICHTS DES UMFANGS DIESES BUCHES HABE ICH EINIGE ABSCHNITTE MIT
DEM
ZEICHEN 6 IN DER UEBERSCHRIFT ALS *WENIGER WICHTIG" GEKENNZEICHNET. DAMIT
WILL
ICH DEM ANFAENGER EINE KLEINE ORIENTIERUNG DURCH DIE FUELLE DES STOFFES
GEBEN.
DIESE KENNZEICHNUNG BEDEUTET ABER KEINESWEGS, DASS DIESER TEIL UNWICHTIG
IST
- VIELLEICHT SIND GERADE DIESE INHALTE FUER SIE BESONDERS RELEVANT. |
adam_txt |
RICHARD KAISER
MIT DEM
BORLAND C++BUILDER 2007
EINFUEHRUNG IN DEN C++-STANDARD
UND DIE OBJEKTORIENTIERTE
WINDOWS-PROGRAMMIERUNG
2. UEBERARBEITETE AUFLAGE
MIT CD-ROM
C++
SPRINGER
INHALT
1 DIE ENTWICKLUNGSUMGEBUNG 1
1.1 VISUELLE PROGRAMMIERUNG: EIN ERSTES KLEINES PROGRAMM 1
1.2 ERSTE SCHRITTE IN C++ 5
1.3 DER QUELLTEXTEDITOR 7
1.4 KONTEXTMENUES UND SYMBOLLEISTEN (TOOLBARS) 11
1.5 PROJEKTE, PROJEKTDATEIEN UND PROJEKTOPTIONEN 13
1.6 EINIGE TIPPS ZUR ARBEIT MIT PROJEKTEN 16
1.7 DIE ONLINE-HILFE 20
1.8 PROJEKTGRUPPEN UND DIE PROJEKTVERWALTUNG 9 22
1.9 HILFSMITTEL ZUR GESTALTUNG VON FORMULAREN 6 24
1.10 PACKAGES UND EIGENSTAENDIG AUSFUEHRBARE PROGRAMME 6 25
1.11 WIN32-APL UND KONSOLEN-ANWENDUNGEN 0 27
1.11.1 KONSOLEN-ANWENDUNGEN 6 27
1.11.2 DER START DES COMPILERS VON DER KOMMANDOZEILE 9 28
1.11.3 WIN32-API ANWENDUNGEN 9 28
1.12 WINDOWS-PROGRAMME UND UNITS 0 29
2 KOMPONENTEN FUER DIE BENUTZEROBERFLAECHE 31
2.1 DIE ONLINE-HILFE ZU DEN KOMPONENTEN 31
2.2 NAMEN 35
2.3 LABELS, DATENTYPEN UND COMPILER-FEHLERMELDUNGEN 38
2.4 FUNKTIONEN, METHODEN UND DIE KOMPONENTE TEDIT 43
2.5 MEMOS, LISTBOXEN, COMBOBOXEN UND DIE KLASSE TSTRINGS 47
2.6 BUTTONS UND EREIGNISSE 53
2.6.1 PARAMETER DER EREIGNISBEHANDLUNGSROUTINEN 54
2.6.2 DER FOKUS UND DIE TABULATORREIHENFOLGE 55
2.6.3 BITBUTTONS UND EINIGE WEITERE EIGENSCHAFTEN VON BUTTONS 56
2.7 CHECKBOXEN, RADIOBUTTONS UND EINFACHE ^ANWEISUNGEN 58
2.8 DIE CONTAINER GROUPBOX, PANEL UND PAGECONTROL 60
2.9 HAUPTMENUES UND KONTEXTMENUES 63
XIV INHALT
2.9.1 HAUPTMENUES UND DER MENUEDESIGNER 64
2.9.2 KONTEXTMENUES 65
2.9.3 DIE VERWALTUNG VON BILDERN MIT IMAGELIST G 66
2.9.4 MENUEVORLAGEN SPEICHERN UND LADEN 0 67
2.10 STANDARDDIALOGE 67
2.10.1 EINFACHE MELDUNGEN MIT SHOWMESSAGE 70
3 ELEMENTARE DATENTYPEN UND ANWEISUNGEN 73
3.1 SYNTAXREGELN 73
3.2 VARIABLEN UND BEZEICHNER 76
3.3 GANZZAHLDATENTYPEN 80
3.3.1 DIE INTERNE DARSTELLUNG VON GANZZAHLWERTEN 83
3.3.2 GANZZAHLLITERALE UND IHR DATENTYP 86
3.3.3 ZUWEISUNGEN UND STANDARDKONVERSIONEN BEI GANZZAHLAUSDRUECKEN.88
3.3.4 OPERATOREN UND DIE *UEBLICHEN ARITHMETISCHEN KONVERSIONEN" 91
3.3.5 DER DATENTYP BOOL 97
3.3.6 DIE C/WR-DATENTYPEN UND DER ASCII- UND ANSI-ZEICHENSATZ 101
3.3.7 DER DATENTYP _INT64 108
3.3.8 C++0X-ERWEITERUNGEN FUER GANZZAHLDATENTYPEN 0 108
3.4 KONTROLLSTRUKTUREN UND FUNKTIONEN 108
3.4.1 DIE IF- UND DIE VERBUNDANWEISUNG 109
3.4.2 WIEDERHOLUNGSANWEISUNGEN 113
3.4.3 FUNKTIONEN UND DER DATENTYP VOID 116
3.4.4 WERTE-UND REFERENZPARAMETER 120
3.4.5 DIE VERWENDUNG VON BIBLIOTHEKEN UND NAMENSBEREICHEN 121
3.4.6 ZUFALLSZAHLEN 122
3.5 TESTS UND DER INTEGRIERTE DEBUGGER 127
3.5.1 SYSTEMATISCHES TESTEN 127
3.5.2 TESTPROTOKOLLE UND TESTFUNKTIONEN FUER AUTOMATISIERTE TESTS 132
3.5.3 TESTS MIT DUNIT IM C++BUILDER 2007 136
3.5.4 DER INTEGRIERTE DEBUGGER 138
3.6 GLEITKOMMADATENTYPEN 142
3.6.1 DIE INTERNE DARSTELLUNG VON GLEITKOMMAWERTEN 143
3.6.2 DER DATENTYP VON GLEITKOMMALITERALEN 147
3.6.3 STANDARDKONVERSIONEN 148
3.6.4 MATHEMATISCHE FUNKTIONEN 153
3.6.5 DATENTYPEN FUER EXAKTE UND KAUFMAENNISCHE RECHNUNGEN 155
3.6.6 EIN KRITERIUM FUER ANNAEHERND GLEICHE GLEITKOMMAZAHLEN 162
3.7 ABLAUFPROTOKOLLE UND PROGRAMMIERLOGIK 165
3.7.1 ABLAUFPROTOKOLLE 166
3.7.2 SCHLEIFENINVARIANTEN MIT ABLAUFPROTOKOLLEN ERKENNEN 169
3.7.3 SYMBOLISCHE ABLAUFPROTOKOLLE 173
3.7.4 SCHLEIFENINVARIANTEN, ABLAUFPROTOKOLLE, VOLLSTAENDIGE INDUKTION 0
180
3.7.5 VERIFIKATIONEN, TESTS UND BEDINGUNGEN ZUR LAUFZEIT PRUEFEN 187
3.7.6 FUNKTIONSAUFRUFE UND PROGRAMMIERSTIL FUER FUNKTIONEN 191
INHALT XV
3.7.7 EINFACHE LOGISCHE REGELN UND WAHRHEITSTABELLEN 0 198
3.7.8 BEDINGUNGEN IN UND NACH /^ANWEISUNGEN UND SCHLEIFEN G 200
3.8 KONSTANTEN 209
3.9 SYNTAXREGELN FUER DEKLARATIONEN UND INITIALISIERUNGEN 212
3.10 ARRAYS UND CONTAINER 214
3.10.1 EINFACHE ^ECFE/^DEKLARATIONEN 215
3.10.2 EINDIMENSIONALE ARRAYS 215
3.10.3 DIE INITIALISIERUNG VON ARRAYS BEI IHRER DEFINITION 223
3.10.4 ARRAYS ALS CONTAINER 225
3.10.5 MEHRDIMENSIONALE ARRAYS 232
3.10.6 DYNAMISCHE PROGRAMMIERUNG 236
3.10.7 ARRAY-EIGENSCHAFTEN DER VCL 9 237
3.11 STRUKTUREN UND KLASSEN 238
3.11.1 MIT STRUCT DEFINIERTE KLASSEN 238
3.11.2 MIT UNION DEFINIERTE KLASSEN 9 245
3.11.3 DIE DATENTYPEN TVARREC UND VARIANTQ 248
3.11.4 BITFELDER 9 250
3.12 ZEIGER, STRINGS UND DYNAMISCH ERZEUGTE VARIABLEN 252
3.12.1 DIE DEFINITION VON ZEIGERVARIABLEN 254
3.12.2 DER ADRESSOPERATOR, ZUWEISUNGEN UND GENERISCHE ZEIGER 257
3.12.3 ABLAUFPROTOKOLLE FUER ZEIGERVARIABLE 261
3.12.4 DYNAMISCH ERZEUGTE VARIABLEN: EWUND DELETE 262
3.12.5 GARBAGE COLLECTION MIT DER SMART POINTER KLASSE SHAREDJPTR 272
3.12.6 DYNAMISCHE ERZEUGTE EINDIMENSIONALE ARRAYS 274
3.12.7 ARRAYS, ZEIGER UND ZEIGERARITHMETIK 276
3.12.8 ARRAYS ALS FUNKTIONSPARAMETER 9 280
3.12.9 KONSTANTE ZEIGER 283
3.12.10 STRINGLITERALE, NULLTERMINIERTE STRINGS UND CHAR*-ZEIGER 285
3.12.11 VERKETTETE LISTEN 292
3.12.12 BINAERBAEUME 303
3.12.13 ZEIGER ALS PARAMETER UND WIN32 API FUNKTIONEN 306
3.12.14 BIBLIOTHEKSFUNKTIONEN FUER NULLTERMINIERTE STRINGS 9 310
3.12.15 DIE ERKENNUNG VON *MEMORY LEAKS" MIT CODEGUARD 9 314
3.12.16 ZEIGERAUF ZEIGER AUF ZEIGER AUF. 9 315
3.12.17 DYNAMISCH ERZEUGTE MEHRDIMENSIONALE ARRAYS 0 316
3.13 DIE STRINGKLASSE ANSISTRING 320
3.13.1 DIE DEFINITION VON VARIABLEN EINES KLASSENTYPS 321
3.13.2 FUNKTIONEN DER KLASSE ANSISTRING 323
3.13.3 GLOBALE ANSISTRING-FUNKTIONEN 326
3.14 DEKLARATIONEN MIT TYPEDEF UND Z}Y EZ I-AUSDRUECKE 333
3.15 AUFZAEHLUNGSTYPEN 336
3.15.1 ENUM KONSTANTEN UND KONVERSIONEN 9 339
3.16 KOMMENTARE UND INTERNE PROGRAMMDOKUMENTATION 340
3.17 GLOBALE, LOKALE UND DYNAMISCHE VARIABLEN 344
3.17.1 DIE DEKLARATIONSANWEISUNG 344
3.17.2 DIE VERBUNDANWEISUNG UND DER LOKALE GUELTIGKEITSBEREICH 345
3.17.3 STATISCHE LOKALE VARIABLEN 348
XVI INHALT
3.17.4 LEBENSDAUER VON VARIABLEN UND SPEICHERKLASSENSPEZIFIZIERER G
.349
3.18 REFERENZTYPEN, WERTE-UND REFERENZPARAMETER 352
3.18.1 WERTEPARAMETER 353
3.18.2 REFERENZPARAMETER 354
3.18.3 KONSTANTE REFERENZPARAMETER 356
3.19 WEITERE ANWEISUNGEN 358
3.19.1 DIE AUSDRUCKSANWEISUNG 358
3.19.2 EXCEPTION HANDLING: TRY UND THROW 360
3.19.3 DIE SWZ'FC/Z-ANWEISUNG 9 365
3.19.4 DIE DO-ANWEISUNG 9 368
3.19.5 DIE FOR- AN WEISUNG 9 369
3.19.6 DIE SPRUNGANWEISUNGEN GOTO, BREAK UND CONTINUE 9 372
3.19.7 ASSEMBLER-ANWEISUNGEN 9 375
3.20 AUSDRUECKE 376
3.20.1 PRIMAERE AUSDRUECKE 9 377
3.20.2 POSTFIX-AUSDRUECKE 9 379
3.20.3 UNAERE AUSDRUECKE 9 380
3.20.4 TYPKONVERSIONEN IN TYPECAST-SCHREIBWEISE 9 383
3.20.5 ZEIGER AUF KLASSENELEMENTE 9 383
3.20.6 MULTIPLIKATIVE GPERATOREN 9 383
3.20.7 ADDITIVE OPERATOREN 9 384
3.20.8 SHIFT-OPERATOREN 9 384
3.20.9 VERGLEICHSOPERATOREN 9 385
3.20.10 GLEICHHEITSOPERATOREN 9 386
3.20.11 BITWEISE OPERATOREN G 387
3.20.12 LOGISCHE OPERATOREN G 388
3.20.13 DER BEDINGUNGSOPERATOR G 388
3.20.14 KONSTANTE AUSDRUECKE G 390
3.20.15 ZUWEISUNGSOPERATOREN 390
3.20.16 DER KOMMA-OPERATOR G 392
3.20.17 L-WERTE UND R-WERTE G 393
3.20.18 DIE PRIORITAET UND ASSOZIATIVITAET DER OPERATOREN 0 393
3.20.19 ALTERNATIVE ZEICHENFOLGEN 0 396
3.20.20 EXPLIZITE TYPKONVERSIONEN O 398
3.21 NAMENSBEREICHE 405
3.21.1 DIE DEFINITION VON BENANNTEN NAMENSBEREICHEN 406
3.21.2 DIE VERWENDUNG VON NAMEN AUS NAMENSBEREICHEN 409
3.21.3 ALIASNAMEN FUER NAMENSBEREICHE 412
3.21.4 UNBENANNTE NAMENSBEREICHE 413
3.22 PRAEPROZESSORANWEISUNGEN 416
3.22.1 DIE #/C/WE-ANWEISUNG 417
3.22.2 MAKROS O 418
3.22.3 BEDINGTE KOMPILATION G 423
3.22.4 PRAGMAS G 428
3.23 SEPARATE KOMPILATION UND STATISCHE BIBLIOTHEKEN 431
3.23.1 C++-DATEIEN, HEADER-DATEIEN UND OBJECT-DATEIEN 432
3.23.2 BINDUNG G 433
INHALT XVII
3.23.3 DEKLARATIONEN UND DEFINITIONEN 9 435
3.23.4 DIE *9NE DEFINITION RULE" 9 437
3.23.5 DIE ELEMENTE VON HEADER-DATEIEN UND C++-DATEIEN 9 439
3.23.6 9BJECT-DATEIEN UND STATISCHE BIBLIOTHEKEN LINKEN 9 441
3.23.7 DER AUFRUF VON IN C GESCHRIEBENEN FUNKTIONEN 9 441
3.24 DYNAMIC LINK LIBRARIES (DLLS) 443
3.24.1 DLLS ERZEUGEN 9 444
3.24.2 IMPLIZIT GELADENE DLLS 9 446
3.24.3 EXPLIZIT GELADENE DLLS 9 448
3.24.4 HILFSPROGRAMME ZUR IDENTIFIZIERUNG VON FUNKTIONEN IN DLLS 9
.449
3.24.5 DLLS MIT VCL KOMPONENTEN 9 451
3.24.6 DIE VERWENDUNG VON MS VISUAL C++ DLLS IM C++BUILDER 9 452
4 EINIGE KLASSEN DER STANDARDBIBLIOTHEK 457
4.1 DIE STRINGKLASSEN STRING UND WSTRING 458
4.1.1 ANSISTRING UND STRING: GEMEINSAMKEITEN UND UNTERSCHIEDE 458
4.1.2 EINIGE ELEMENTFUNKTIONEN DER KLASSE STRING 461
4.1.3 STRINGSTREAMS 464
4.2 SEQUENZIELLE CONTAINER DER STANDARDBIBLIOTHEK 469
4.2.1 DIE CONTAINER-KLASSE VECTOR 469
4.2.2 ITERATOREN 473
4.2.3 ALGORITHMEN DER STANDARDBIBLIOTHEK 476
4.2.4 DIE SPEICHERVERWALTUNG BEI VEKTOREN 9 482
4.2.5 MEHRDIMENSIONALE VEKTOREN 9 484
4.2.6 DIE CONTAINER-KLASSEN LIST UND DEQUE 485
4.2.7 GEMEINSAMKEITEN UND UNTERSCHIEDE DER SEQUENZIELLEN CONTAINER.487
4.2.8 DIE CONTAINER-ADAPTER STACH, QUEUE UNDPRIORITY_QUEUE 9 489
4.2.9 CONTAINER MIT ZEIGERN 491
4.2.10 DIE VERSCHIEDENEN STL-IMPLEMENTATIONEN IM C++BUILDER 9 491
4.2.11 DIE CONTAINER-KLASSE BITSET 9 492
4.3 DATEIBEARBEITUNG MIT DEN STREAM-KLASSEN 493
4.3.1 STREAM-VARIABLEN, IHRE VERBINDUNG MIT DATEIEN UND IHR ZUSTAND
.494
4.3.2 FEHLER UND DER ZUSTAND VON STREAM-VARIABLEN 498
4.3.3 LESEN UND SCHREIBEN VON BINAERDATEN MIT READXMD WRITE 499
4.3.4 LESEN UND SCHREIBEN VON DATEN MIT DEN OPERATOREN UND .508
4.3.5 MANIPULATOREN UND FUNKTIONEN ZUR FORMATIERUNG VON TEXTEN 9 . 516
4.3.6 DATEIBEARBEITUNG IM DIREKTZUGRIFF 9 519
4.3.7 SORTIEREN, MISCHEN UND GRUPPENVERARBEITUNG 9 522
4.3.8 C-FUNKTIONEN ZUR DATEIBEARBEITUNG 9 529
4.4 ASSOZIATIVE CONTAINER 532
4.4.1 DIE CONTAINER SET UND MULTISET 533
4.4.2 DIE CONTAINER MAP UND MULTIMAP 534
4.4.3 ITERATOREN DER ASSOZIATIVEN CONTAINER 536
4.5 DIE NUMERISCHEN KLASSEN DER STANDARDBIBLIOTHEK 539
4.5.1 KOMPLEXE ZAHLEN 9 540
XV111
INHALT
4.5.2 VALARRAYS9 543
4.6 C++OX-ERWEITERUNGEN DER STANDARDBIBLIOTHEK 0 545
4.6.1 UNGEORDNETE ASSOZIATIVE CONTAINER (HASH CONTAINER) 545
4.6.2 DIE INSTALLATION DER BOOST-BIBLIOTHEKEN 6 549
4.6.3 FIXED SIZE ARRAY CONTAINER 0 552
4.6.4 TUPELG 553
5 FUNKTIONEN 557
5.1 DIE VERWALTUNG VON FUNKTIONSAUFRUFEN UEBER DEN STACK 558
5.1.1 AUFRUFKONVENTIONEN 9 561
5.2 FUNKTIONSZEIGER UND DER DATENTYP EINER FUNKTION 561
5.2.1 DER DATENTYP EINER FUNKTION 561
5.2.2 ZEIGER AUF FUNKTIONEN 563
5.3 REKURSION 569
5.3.1 GRUNDLAGEN 570
5.3.2 QUICKSORT 576
5.3.3 EIN REKURSIV ABSTEIGENDER PARSER 580
5.3.4 REKURSIV DEFINIERTE KURVEN 9 585
5.3.5 INDIREKTE REKURSION 9 588
5.3.6 REKURSIVE DATENSTRUKTUREN UND BINAERE SUCHBAEUME 588
5.3.7 VERZEICHNISSE REKURSIV NACH DATEIEN DURCHSUCHEN 9 593
5.4 FUNKTIONEN UND PARAMETER 9 596
5.4.1 SEITENEFFEKTE UND DIE REIHENFOLGE VON AUSWERTUNGEN 9 596
5.4.2 SYNTAXREGELN FUER FUNKTIONEN 9 599
5.4.3 DER FUNKTIONSBEGRIFF IN DER MATHEMATIK UND IN C++ 9 602
5.4.4 DER AUFRUF VON FUNKTIONEN AUS DELPHI IM C++BUILDER 9 603
5.4.5 UNSPEZIFIZIERTE ANZAHL UND TYPEN VON ARGUMENTEN 9 604
5.4.6 DIE FUNKTIONEN MAIN BZW. WINMAIN UND IHRE PARAMETER 9 606
5.4.7 TRADITIONELLE K&R-FUNKTIONSDEFINITIONEN 0 608
5.5 DEFAULT-ARGUMENTE 610
5.6 MINE-FUNKTIONEN 611
5.7 UEBERLADENE FUNKTIONEN 614
5.7.1 FUNKTIONEN, DIE NICHT UEBERLADEN WERDEN KOENNEN 616
5.7.2 REGELN FUER DIE AUSWAHL EINER PASSENDEN FUNKTION 617
5.8 UEBERLADENE OPERATOREN MIT GLOBALEN OPERATORFUNKTIONEN 623
5.8.1 GLOBALE OPERATORFUNKTIONEN 625
5.8.2 DIE INKREMENT- UND DEKREMENTOPERATOREN 627
5.8.3 REFERENZEN ALS FUNKTIONSWERTE 629
5.8.4 DIE EIN- UND AUSGABE VON SELBST DEFINIERTEN DATENTYPEN 631
INHALT XIX
6 OBJEKTORIENTIERTE PROGRAMMIERUNG 635
6.1 KLASSEN 636
6.1.1 DATENELEMENTE UND ELEMENTFUNKTIONEN 636
6.1.2 DER GUELTIGKEITSBEREICH VON KLASSENELEMENTEN 640
6.1.3 DATENKAPSELUNG: DIE ZUGRIFFSRECHTE PRIVATE UNDPUBLIC 644
6.1.4 DER AUFRUF VON ELEMENTFUNKTIONEN UND DER THIS-ZEIGER 650
6.1.5 KONSTRUKTOREN UND DESTRUKTOREN 652
6.1.6 OO ANALYSE UND DESIGN: DER ENTWURF VON KLASSEN 664
6.1.7 PROGRAMMIERLOGIK: KLASSENINVARIANTEN UND KORREKTHEIT 672
6.1.8 UML-DIAGRAMME MIT TOGETHER IM C++BUILDER 2007 679
6.2 KLASSEN ALS DATENTYPEN 682
6.2.1 DER STANDARDKONSTRUKTOR 683
6.2.2 OBJEKTE ALS KLASSENELEMENTE UND ELEMENTINITIALISIERER 685
6.2.3 /HEWRF-FUNKTIONEN UND -KLASSEN 690
6.2.4 UEBERLADENE OPERATOREN ALS ELEMENTFUNKTIONEN 693
6.2.5 DER COPY-KONSTRUKTOR 702
6.2.6 DER ZUWEISUNGSOPERATOR = FUER KLASSEN 709
6.2.7 BENUTZERDEFINIERTE KONVERSIONEN 717
6.2.8 EXPLIZITE KONSTRUKTOREN O 722
6.2.9 STATISCHE KLASSENELEMENTE 723
6.2.10 KONSTANTE KLASSENELEMENTE UND OBJEKTE 725
6.2.11 KLASSEN UND HEADER-DATEIEN 728
6.3 VERERBUNG UND KOMPOSITION 731
6.3.1 DIE ELEMENTE VON ABGELEITETEN KLASSEN 732
6.3.2 ZUGRIFFSRECHTE AUF DIE ELEMENTE VON BASISKLASSEN 734
6.3.3 DIE BEDEUTUNG VON ELEMENTNAMEN IN EINER KLASSENHIERARCHIE 736
6.3.4 I/G-DEKLARATIONEN IN ABGELEITETEN KLASSEN O 738
6.3.5 KONSTRUKTOREN, DESTRUKTOREN UND IMPLIZIT ERZEUGTE FUNKTIONEN 739
6.3.6 VERERBUNG BEI FORMULAREN IM C++BUILDER 745
6.3.7 OO DESIGN: PUBLIC VERERBUNG UND *IST EIN"-BEZIEHUNGEN 746
6.3.8 OO DESIGN: KOMPOSITION UND *HAT EIN"-BEZIEHUNGEN 751
6.3.9 KONVERSIONEN ZWISCHEN PUBLIC ABGELEITETEN KLASSEN 753
6.3.10 PROTECTED UND PRIVATE ABGELEITETE KLASSEN O 758
6.3.11 MEHRFACHVERERBUNG UND VIRTUELLE BASISKLASSEN 761
6.4 VIRTUELLE FUNKTIONEN, SPAETE BINDUNG UND POLYMORPHIE 768
6.4.1 DER STATISCHE UND DER DYNAMISCHE DATENTYP 768
6.4.2 VIRTUELLE FUNKTIONEN 769
6.4.3 DIE IMPLEMENTIERUNG VON VIRTUELLEN FUNKTIONEN: VPTR UND VTBL 780
6.4.4 VIRTUELLE KONSTRUKTOREN UND DESTRUKTOREN 786
6.4.5 VIRTUELLE FUNKTIONEN IN KONSTRUKTOREN UND DESTRUKTOREN 788
6.4.6 OO-DESIGN: EINSATZBEREICH UND TEST VON VIRTUELLEN
FUNKTIONEN.789
6.4.7 OO-DESIGN UND ERWEITERBARKEIT 791
6.4.8 REIN VIRTUELLE FUNKTIONEN UND ABSTRAKTE BASISKLASSEN 794
6.4.9 OO-DESIGN: VIRTUELLE FUNKTIONEN UND ABSTRAKTE BASISKLASSEN 798
6.4.10 OOAD: ZUSAMMENFASSUNG 800
6.4.11 INTERFACES UND MEHRFACHVERERBUNG 804
XX INHALT
6.4.12 ZEIGER AUF KLASSENELEMENTE G 805
6.4.13 UML-DIAGRAMME FUER VERERBUNG UND KOMPOSITION 810
6.5 LAUFZEIT-TYPINFORMATIONEN 812
6.5.1 TYPINFORMATIONEN MIT DEM OPERATOR TYPEID G 813
6.5.2 TYPKONVERSIONEN MIT DYNAMIC_CAST G 816
6.5.3 ANWENDUNGEN VON LAUFZEIT-TYPINFORMATIONEN G 819
6.5.4 STATIC_CAST MIT KLASSEN G 822
6.5.5 LAUFZEIT-TYPINFORMATIONEN FUER DIE KLASSEN DER VCL G 823
7 EXCEPTION-HANDLING 827
7.1 DIE FRY-ANWEISUNG 828
7.2 EXCEPTION-HANDLER UND EXCEPTIONS DER STANDARDBIBLIOTHEK 831
7.3 VORDEFINIERTE EXCEPTIONS DER VCL 836
7.4 DER PROGRAMMABLAUF BEI EXCEPTIONS 838
7.5 DAS VORDEFINIERTE EXCEPTION-HANDLING DER VCL 841
7.6 ?/JROW-AUSDRUECKE UND SELBST DEFINIERTE EXCEPTIONS 842
7.7 FEHLER, EXCEPTIONS UND DIE KORREKTHEIT VON PROGRAMMEN 848
7.8 DIE FREIGABE VON RESSOURCEN BEI EXCEPTIONS 851
7.9 EXCEPTIONS IN KONSTRUKTOREN UND DESTRUKTOREN 854
7.10 EXCEPTION-SPEZIFIKATIONEN 859
7.11 DIE FUNKTION TERMINALE G 861
7.12 DAS WIN32-EXCEPTION-HANDLING MIT TRY- EXCEPT G 862
8 DIE BIBLIOTHEK DER VISUELLEN KOMPONENTEN (VCL) 863
8.1 BESONDERHEITEN DER VCL 864
8.2 VISUELLE PROGRAMMIERUNG UND PROPERTIES (EIGENSCHAFTEN) 868
8.2.1 LESEN UND SCHREIBEN VON EIGENSCHAFTEN 868
8.2.2 ARRAY-PROPERTIES G 871
8.2.3 INDEXANGABEN G 873
8.2.4 DIE SPEICHERUNG VON EIGENSCHAFTEN IN DER FORMULARDATEI G 874
8.2.5 DIE REDEKLARATION VON EIGENSCHAFTEN 876
8.3 DIE KLASSENHIERARCHIE DER VCL 876
8.4 SELBST DEFINIERTE KOMPONENTEN UND IHRE EREIGNISSE 884
8.5 DIE ERWEITERUNG DER TOOL-PALETTE 892
8.6 KLASSENREFERENZTYPEN UND VIRTUELLE KONSTRUKTOREN 898
8.7 BOTSCHAFTEN (MESSAGES) 903
8.7.1 DIE MESSAGE QUEUE UND DIE WINDOW-PROZEDUR 903
8.7.2 BOTSCHAFTEN FUER EINE ANWENDUNG 906
8.7.3 BOTSCHAFTEN FUER EIN STEUERELEMENT 907
8.7.4 SELBST DEFINIERTE REAKTIONEN AUF BOTSCHAFTEN 909
8.7.5 BOTSCHAFTEN VERSENDEN 914
INHALT XXI
9 TEMPLATES UND DIE STL 920
9.1 GENERISCHE FUNKTIONEN: FUNKTIONS-TEMPLATES 921
9.1.1 DIE DEKLARATION VON FUNKTIONS-TEMPLATES MIT TYP-PARAMETERN .922
9.1.2 SPEZIALISIERUNGEN VON FUNKTIONS-TEMPLATES 923
9.1.3 FUNKTIONS-TEMPLATES MIT NICHT-TYP-PARAMETERN 930
9.1.4 EXPLIZIT INSTANZIIERTE FUNKTIONS-TEMPLATES 8 931
9.1.5 EXPLIZIT SPEZIALISIERTE UND UEBERLADENE TEMPLATES 932
9.1.6 REKURSIVE FUNKTIONS-TEMPLATES G 936
9.2 GENERISCHE KLASSEN: KLASSEN-TEMPLATES 939
9.2.1 DIE DEKLARATION VON KLASSEN-TEMPLATES MIT TYP-PARAMETERN 940
9.2.2 SPEZIALISIERUNGEN VON KLASSEN-TEMPLATES 941
9.2.3 TEMPLATES MIT NICHT-TYP-PARAMETERN 949
9.2.4 EXPLIZIT INSTANZIIERTE KLASSEN-TEMPLATES 6 950
9.2.5 PARTIELLE UND VOLLSTAENDIGE SPEZIALISIERUNGEN 0 951
9.2.6 ELEMENTE UND^HEND-FUNKTIONEN VON KLASSEN-TEMPLATES 6 957
9.2.7 ABLEITUNGEN VON TEMPLATES 0 961
9.2.8 UML-DIAGRAMME FUER PARAMETRISIERTE KLASSEN 0 962
9.3 FUNKTIONSOBJEKTE IN DER STL 965
9.3.1 DER AUFRUFOPERATOR () 965
9.3.2 PRAEDIKATE UND ARITHMETISCHE FUNKTIONSOBJEKTE 968
9.3.3 BINDER, FUNKTIONSADAPTER UND C++OX-ERWEITERUNGEN 973
9.4 ITERATOREN UND DIE STL-ALGORITHMEN 980
9.4.1 DIE VERSCHIEDENEN ARTEN VON ITERATOREN 981
9.4.2 UMKEHRITERATOREN 983
9.4.3 EINFUEGEFUNKTIONEN UND EINFUEGEITERATOREN 984
9.4.4 STREAM-ITERATOREN 986
9.4.5 CONTAINER-KONSTRUKTOREN MIT ITERATOREN 987
9.4.6 STL-ALGORITHMEN FUER ALLE ELEMENTE EINES CONTAINERS 988
9.5 DIE ALGORITHMEN DER STL 991
9.5.1 LINEARES SUCHEN 991
9.5.2 ZAEHLEN 993
9.5.3 DER VERGLEICH VON BEREICHEN 994
9.5.4 SUCHE NACH TEILFOLGEN 995
9.5.5 MINIMUM UND MAXIMUM 996
9.5.6 ELEMENTE VERTAUSCHEN 998
9.5.7 KOPIEREN VON BEREICHEN 998
1
9.5.8 ELEMENTE TRANSFORMIEREN UND ERSETZEN 1000
9.5.9 ELEMENTEN IN EINEM BEREICH WERTE ZUWEISEN 1002
9.5.10 ELEMENTE ENTFERNEN 1002
9.5.11 DIE REIHENFOLGE VON ELEMENTEN VERTAUSCHEN 1004
9.5.12 PERMUTATIONEN 1005
9.5.13 PARTITIONEN 1006
9.5.14 BEREICHE SORTIEREN 1007
9.5.15 BINAERES SUCHEN IN SORTIERTEN BEREICHEN 1008
9.5.16 MISCHEN VON SORTIERTEN BEREICHEN 1009
9.5.17 MENGENOPERATIONEN AUF SORTIERTEN BEREICHEN 1010
XXII INHALT
9.5.18 HEAP-OPERATIONEN 1012
9.5.19 VERALLGEMEINERTE NUMERISCHE OPERATIONEN 1013
10 VERSCHIEDENES 1015
10.1 SYMBOLLEISTEN, MENUES UND AKTIONEN 1015
10.1.1 SYMBOLLEISTEN MIT PANELS UND SPEEDBUTTONS 1016
10.1.2 SYMBOLLEISTEN MIT TOOLBARS 1016
10.1.3 VERSCHIEBBARE KOMPONENTEN MIT COOLBAR UND CONTROLBAR 1017
10.1.4 DIE VERWALTUNG VON AKTIONEN 1017
10.2 EIGENE DIALOGE, FRAMES UND DIE OBJEKTABLAGE 1023
10.2.1 DIE ANZEIGE VON WEITEREN FORMULAREN UND MODALE FENSTER 1023
10.2.2 VORDEFINIERTE DIALOGFELDER DER OBJEKTABLAGE 1026
10.2.3 FUNKTIONEN, DIE VORDEFINIERTE DIALOGFELDER ANZEIGEN 1027
10.2.4 DIE ERWEITERUNG DER TOOL-PALETTE MIT FRAMES 1029
10.2.5 DATENMODULE 1030
10.2.6 DIE OBJEKTABLAGE 1030
10.3 GROESSENAENDERUNG VON STEUERELEMENTEN ZUR LAUFZEIT 1031
10.3.1 DIE EIGENSCHAFTENALIGN UNDANCHOR 1031
10.3.2 DIE KOMPONENTEN SPLITTER UND HEADERCONTROL 1032
10.3.3 GRIDPANEL: TABELLEN MIT STEUERELEMENTEN 1033
10.3.4 AUTOMATISCH ANGEORDNETE STEUERELEMENTE: FLOWPANEL 1035
10.4 LISTVIEW UND TREEVIEW 1035
10.4.1 DIE ANZEIGE VON LISTEN MIT LISTVIEW 1035
10.4.2 LISTVIEWNACH SPALTEN SORTIEREN 1038
10.4.3 DIE ANZEIGE VON BAUMDIAGRAMMEN MIT TREEVIEW 1040
10.5 FORMATIERTE TEXTE MIT DER RICHEDIT-KOMPONENTE 1045
10.6 TABELLEN 1047
10.7 SCHIEBEREGLER: SCROLLBAR UND TRACKBAR 1049
10.8 WEITERE EINGABEKOMPONENTEN 1051
10.8.1 TEXTEINGABEN MIT MASKEDIT FILTERN 1051
10.8.2 DIE AUSWAHL VON LAUFWERKEN UND VERZEICHNISSEN 1053
10.9 STATUS- UND FORTSCHRITTSANZEIGEN 1055
10.10 KLASSEN UND FUNKTIONEN ZU UHRZEIT UND KALENDERDATUM 1056
10.10.1 TDATETIME-FUNKTIONEN 1056
10.10.2 ZEITGESTEUERTE EREIGNISSE MIT EINEM TIMER 1058
10.10.3 HOCHAUFLOESENDE ZEITMESSUNG 1059
10.10.4 KALENDERDATEN UND ZEITEN EINGEBEN 1060
10.11 MULTITASKING UND THREADS 1062
10.11.1 MULTITHREADING MIT DER KLASSE TTHREAD 1063
10.11.2 DER ZUGRIFF AUF VCL-ELEMENTE MIT SYNCHRONIZE 1065
10.11.3 KRITISCHE ABSCHNITTE UND DIE SYNCHRONISATION VON THREADS 1067
10.12 TRAYLCON 1069
10.13 TCANVAS UND TIMAGE: GRAFIKEN ANZEIGEN UND ZEICHNEN 1070
10.13.1 GRAFIKEN ANZEIGEN MIT TIMAGE 1070
10.13.2 GRAFIKEN ZEICHNEN MIT TCANVAS 1070
INHALT XXIII
10.13.3 WELT-UND BILDSCHIRMKOORDINATEN 1071
10.13.4 FIGUREN, FARBEN, STIFTE UND PINSEL 1073
10.13.5 TEXT AUF EINEN CANVAS SCHREIBEN 1075
10.13.6 DRUCKEN MIT TPRINTER 1076
10.13.7 GRAFIKEN IM BMP- UND WMF-FORMAT SPEICHERN 1077
10.13.8 AUF DEN CANVAS EINER PAINTBOX ODER EINES FORMULARS ZEICHNEN
.1078
10.14 DIE STEUERUNG VON MS-OFFICE: WORD-DOKUMENTE ERZEUGEN 1085
10.15 DATENBANK-KOMPONENTEN DER VCL 1088
10.15.1 VERBINDUNG MIT ADO-DATENBANKEN - DER CONNECTION-STRING 1089
10.15.2 TABELLEN UND DIE KOMPONENTE TDATASET 1096
10.15.3 TABELLENDATEN LESEN UND SCHREIBEN 1098
10.15.4 DIE ANZEIGE VON TABELLEN MIT EINEM DBGRID 1101
10.15.5 SQL-ABFRAGEN 1102
10.16 INTERNET-KOMPONENTEN 1104
10.17 MDI-PROGRAMME 1107
10.18 DIE KLASSE SET 1110
10.19 3D-GRAFIK MIT OPENGL 1113
10.19.1 INITIALISIERUNGEN 1114
10.19.2 GRAFISCHE GRUNDELEMENTE: PRIMITIVE 1117
10.19.3 MODELLTRANSFORMATIONEN 1121
10.19.4 VORDEFINIERTE KOERPER 1124
10.19.5 LOKALE TRANSFORMATIONEN 1126
10.19.6 BELEUCHTUNGSEFFEKTE 1129
10.19.7 TEXTUREN 1132
10.20 WIN32-FUNKTIONEN ZUR DATEIBEARBEITUNG 1136
10.20.1 ELEMENTARE FUNKTIONEN 1137
10.20.2 FILE-SHARING 1140
10.20.3 RECORD-LOCKING 1141
10.20.4 VCL-FUNKTIONEN ZUR DATEIBEARBEITUNG UND TFILESTREAM 1142
10.21 DATENUEBERTRAGUNG UEBER DIE SERIELLE SCHNITTSTELLE 1145
10.21.1 GRUNDBEGRIFFE 1145
10.21.2 STANDARDS FUER DIE SERIELLE SCHNITTSTELLE: RS-232C BZW. V.24 1146
10.21.3 WIN32-FUNKTIONEN ZUR SERIELLEN KOMMUNIKATION 1148
LITERATURVERZEICHNIS 1153
INHALT BUCH-CD 1159
INDEX 1161
6 ANGESICHTS DES UMFANGS DIESES BUCHES HABE ICH EINIGE ABSCHNITTE MIT
DEM
ZEICHEN 6 IN DER UEBERSCHRIFT ALS *WENIGER WICHTIG" GEKENNZEICHNET. DAMIT
WILL
ICH DEM ANFAENGER EINE KLEINE ORIENTIERUNG DURCH DIE FUELLE DES STOFFES
GEBEN.
DIESE KENNZEICHNUNG BEDEUTET ABER KEINESWEGS, DASS DIESER TEIL UNWICHTIG
IST
- VIELLEICHT SIND GERADE DIESE INHALTE FUER SIE BESONDERS RELEVANT. |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Kaiser, Richard |
author_GND | (DE-588)1156684323 |
author_facet | Kaiser, Richard |
author_role | aut |
author_sort | Kaiser, Richard |
author_variant | r k rk |
building | Verbundindex |
bvnumber | BV022311732 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)635331171 (DE-599)BVBBV022311732 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 2. überarb. Aufl. |
format | Kit Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nom a2200000 c 4500</leader><controlfield tag="001">BV022311732</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20180619</controlfield><controlfield tag="008">070314s2008 gw ||| 0| bnger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N07,0047</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">982667957</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783540695752</subfield><subfield code="c">: EUR 69.95, sfr 115.50</subfield><subfield code="9">978-3-540-69575-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3540695753</subfield><subfield code="c">: EUR 69.95, sfr 115.50</subfield><subfield code="9">3-540-69575-3</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783540695752</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">11966036</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)635331171</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022311732</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-859</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Kaiser, Richard</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1156684323</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C++ mit dem Borland C++-Builder 2007</subfield><subfield code="b">Einführung in den C++-Standard und die objektorientierte Windows-Programmierung</subfield><subfield code="c">Richard Kaiser</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. überarb. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Berlin [u.a.]</subfield><subfield code="b">Springer</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIII, 1184 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="c">235 mm x 155 mm</subfield><subfield code="e">1 CD-ROM (12 cm)</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Xpert.press</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Borland C++ Builder 7.0</subfield><subfield code="0">(DE-588)7604775-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Borland C++ Builder 7.0</subfield><subfield code="0">(DE-588)7604775-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2905088&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015521254&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015521254</subfield></datafield></record></collection> |
id | DE-604.BV022311732 |
illustrated | Illustrated |
index_date | 2024-07-02T16:58:40Z |
indexdate | 2024-07-20T09:13:37Z |
institution | BVB |
isbn | 9783540695752 3540695753 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015521254 |
oclc_num | 635331171 |
open_access_boolean | |
owner | DE-859 DE-M347 DE-1050 DE-1051 DE-20 DE-861 DE-11 |
owner_facet | DE-859 DE-M347 DE-1050 DE-1051 DE-20 DE-861 DE-11 |
physical | XXIII, 1184 S. Ill., graph. Darst. 235 mm x 155 mm 1 CD-ROM (12 cm) |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Springer |
record_format | marc |
series2 | Xpert.press |
spelling | Kaiser, Richard Verfasser (DE-588)1156684323 aut C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung Richard Kaiser 2. überarb. Aufl. Berlin [u.a.] Springer 2008 XXIII, 1184 S. Ill., graph. Darst. 235 mm x 155 mm 1 CD-ROM (12 cm) Xpert.press Borland C++ Builder 7.0 (DE-588)7604775-1 gnd rswk-swf Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf C++ (DE-588)4193909-8 gnd rswk-swf Borland C++ Builder 7.0 (DE-588)7604775-1 s DE-604 C++ (DE-588)4193909-8 s Objektorientierte Programmierung (DE-588)4233947-9 s 1\p DE-604 text/html http://deposit.dnb.de/cgi-bin/dokserv?id=2905088&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015521254&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Kaiser, Richard C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung Borland C++ Builder 7.0 (DE-588)7604775-1 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd C++ (DE-588)4193909-8 gnd |
subject_GND | (DE-588)7604775-1 (DE-588)4233947-9 (DE-588)4193909-8 |
title | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |
title_auth | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |
title_exact_search | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |
title_exact_search_txtP | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |
title_full | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung Richard Kaiser |
title_fullStr | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung Richard Kaiser |
title_full_unstemmed | C++ mit dem Borland C++-Builder 2007 Einführung in den C++-Standard und die objektorientierte Windows-Programmierung Richard Kaiser |
title_short | C++ mit dem Borland C++-Builder 2007 |
title_sort | c mit dem borland c builder 2007 einfuhrung in den c standard und die objektorientierte windows programmierung |
title_sub | Einführung in den C++-Standard und die objektorientierte Windows-Programmierung |
topic | Borland C++ Builder 7.0 (DE-588)7604775-1 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd C++ (DE-588)4193909-8 gnd |
topic_facet | Borland C++ Builder 7.0 Objektorientierte Programmierung C++ |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2905088&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015521254&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kaiserrichard cmitdemborlandcbuilder2007einfuhrungindencstandardunddieobjektorientiertewindowsprogrammierung |