| 
 
 
  | 
  
 | 
  
    | 
     C++ 
    ENT-PACKT 
		
  
		
  Herbert Schildt
    
     mitp-Verlag
 
EAN: 9783826607318 (ISBN: 3-8266-0731-7)
 816 Seiten, paperback, 18 x 24cm, 2001
EUR 39,95 alle Angaben ohne Gewähr
     
    
 | 
 
 
 | 
 
 
Umschlagtext 
Dieses Buch behandelt detailliert alle Aspekte der Sprache C++: Befehle, Funktionen und Klassenbibliotheken, Algorithmen und Applikationen. Zahlreiche Tipps für effizientes und produktives Programmieren sowie viele Beispiele aus erfahrener Hand machen dieses Werk zu einem unverzichtbaren Begleiter für alle C++-Programmierer. Herbert Schildt beantwortet Ihnen alle speziellen Fragen zu C++.
  
  
C++ Ent-Packt ist in fünf Teile gegliedert:
  
Teil I behandelt umfassend die Untermenge C von C++. Teil II beschreibt detailliert die Erweiterungen und Verbesserungen, die durch C++ an C vorgenommen wurden: die objektorientierten Features wie Klassen, Konstruktoren, Destruktoren und Templates. Teil III beschreibt die Standardfunktionenblibliothek und Teil IV die Standardklassenbibliothek inklusive der STL (Standard Template Library). Teil V erläutert praktische Beispiele für den Einsatz von C++ und objektorientierter Programmierung. Herbert Schildt, weltweit führender Autor von Fachbüchern für Programmierer und Mitglied des ANSI/ISO Komitees, liefert in diesem Buch die neuesten Entwicklungen des ANSI/ISO-Standards.
  
  
Aus dem Inhalt:
  
· Die Untermenge C - die Grundlage von C++
  
· Grundlagen der objektorientierten Programmierung
  
· Klassen und Objekte
  
· Arrays, Zeiger und Operatoren zur dynamischen Allozierung
  
· Konstruktoren und Destruktoren
  
· Virtuelle Funktionen und Vererbung
  
· Überladen von Funktionen und Operatoren
  
· Run-Time-Type-ID (RTTI)
  
· Namensräume und Templates
  
· Ausnahmebehandlung
  
· Die Standard-Template Library (STL )
  
  
Alle Quellcode-Beispiele können Sie sich kostenlos aus dem Web downloaden! 
  
Inhaltsverzeichnis 
Vorwort 21 
 
Teil l Die Grundlage von C++: Die C-Teilmenge 25 
 
Kapitel 1: Ein Überblick über C 27 
Die Ursprünge von C 27 
C ist eine Middle-Level-Sprache 28 
C ist eine strukturierte Sprache 29 
C ist eine Programmierersprache 31 
Die Form eines C-Programms 32 
Die Bibliothek und das Linken 33 
Getrennte Kompilierung 34 
Die Dateierweiterungen .C und .CPP 34 
 
Kapitel 2: Ausdrücke 35 
Die fünf grundlegenden Datentypen 35 
Modifizieren der Grundtypen 36 
Bezeichnernamen 37 
Variablen 38 
Zugriffs-Modifier 42 
Speicherklassen-Bezeichner 44 
static-Variablen 46 
Variableninitialisierungen 49 
Konstanten 50 
Operatoren 52 
Ausdrücke 66 
 
Kapitel 3: Anweisungen 71 
True und false in C und C++ 71 
Selektionsanweisungen 72 
Iterationsanweisungen 81 
Variablendeklarationen innerhalb von Selektions- und Iterationsanweisungen 90 
Sprunganweisungen 91 
Ausdrucksanweisungen 95 
Blockanweisungen 96 
 
Kapitel 4: Arrays und nullterminierte Zeichenketten 97 
Eindimensionale Arrays 97 
Einen Zeiger auf ein Array erzeugen 98 
Eindimensionale Arrays an Funktionen übergeben 99 
Nullterminierte Zeichenketten 100 
Zweidimensionale Arrays 102 
Mehrdimensionale Arrays 106 
Zeiger indizieren 107 
Array-Initialisierung 109 
Ein Tic-Tac-Toe-Beispiel 111 
 
Kapitel 5: Zeiger 115 
Was sind Zeiger? 115 
Zeigervariablen 116 
Die Zeigeroperatoren 116 
Zeigerausdrücke 118 
Zeigervergleiche 119 
Zeiger und Arrays 121 
Mehrfache Indirektion 123 
Zeiger initialisieren 124 
Zeiger auf Funktionen 125 
Die dynamischen Belegungsfunktionen von C 128 
Probleme mit Zeigern 129 
 
Kapitel 6: Punktionen 133 
Die allgemeine Form von Funktionen 133 
Bereichsregeln für Funktionen 134 
Funktionsargumente 134 
arge und argv - Argumente für main() 138 
Die return-Anweisung 141 
Rekursion 146 
Funktionsprototypen 147 
Parameterlisten variabler Länge deklarieren 149 
Funktionsparameterdeklarationen im alten und im neuen Stil 149 
Implementierungsfragen 150 
 
Kapitel 7: Strukturen, Unions, Aufzählungen un benutzerdefinierte Typen 153 
Strukturen 153 
Arrays aus Strukturen 156 
Strukturen an Funktionen übergeben 157 
Strukturzeiger 159 
Arrays und Strukturen in Strukturen 162 
Bit-Felder 163 
Unions 165 
Aufzählungen 167 
Die Verwendung von sizeof zur Sicherung der Portabilität 170 
typedef 171 
 
Kapitel 8: Konsolen-l/0 im C-Stil 173 
Ein wichtiger Anwendungshinweis 174 
Zeichen lesen und schreiben 174 
Zeichenketten lesen und schreiben 176 
Formatierter Konsolen-I/O 179 
printf() 179 
scanf() 185 
 
Kapitel 9: Datei-l/0 193 
C.Datei- und C++-Datei-I/O 193 
Streams und Dateien 193 
Streams 194 
Dateien 194 
Grundlagen des Dateisystems 195 
fread() und fwrite() 205 
fseek() und I/O im wahlfreien Zugriff 207 
fprintf() und fscanf() 208 
Die Standard-Streams 209 
 
Kapitel 10: Der Präprozessor und Kommentare 213 
Der Präprozessor 213 
#define 214 
#error 216 
#include 216 
Bedingte Kompilierungsdirektiven 217 
#undef 220 
Die Verwendung von defined 220 
#line 221 
#pragma 221 
Die Präprozessor-Operatoren # und ## 222 
Vordefinierte Makronamen 223 
Kommentare im C-Stil 223 
 
Teil II C++ 225 
 
Kapitel 11: Ein Überblick über C++ 227 
Der Ursprung von C++ 227 
Was ist objektorientierte Programmierung? 228 
Grundlagen von C++ 230 
Alter Stil und modernes C++ 235 
Einführung in C++-Klassen 239 
Überladen von Funktionen 242 
Überladen von Operatoren 244 
Vererbung 245 
Konstruktoren und Destruktoren 249 
Die Schlüsselwörter von C++ 252 
Die allgemeine Form eines C++-Programms 252 
 
Kapitel 12: Klassen und Objekte 253 
Klassen 253 
Strukturen und Klassen 256 
Union und Klassen 257 
Anonyme union 258 
Befreundete Funktionen 259 
Befreundete Klassen 263 
Inline-Funktionen 264 
Inline-Funktionen in Klassen definieren 265 
Konstruktoren mit Parametern 267 
Spezialfall: Konstruktoren mit einem Parameter 268 
Statische Klassenelemente 269 
Ausführung von Konstruktor und Destruktor 275 
Geschachtelte Klassen 276 
Lokale Klassen 277 
Objekte an Funktionen übergeben 277 
Objekte zurückgeben 279 
Objekte zuweisen 280 
 
Kapitel 13: Arrays, Zeiger, Referenzen und die Operatore zur dynamischen Allozierung 281 
Arrays von Objekten 281 
Zeiger auf Objekte 284 
Typüberprüfung bei C++-Zeigern 285 
Der Zeiger this 286 
Zeiger auf abgeleitete Typen 287 
Zeiger auf Klassenelemente 289 
Referenzen 291 
Eine Frage des Stils 297 
C++-Operatoren für dynamische Allozierung 298 
 
Kapitel 14: Überladen von Punktionen, Kopierkonstruktore und Defaultarguntente 307 
Überladen von Konstruktorfunktionen 309 
Kopierkonstruktor 312 
Die Adresse einer überladenen Funktion finden 315 
Der Anachronismus overload 316 
Defaultargumente von Funktionen 316 
Überladen von Funktionen und Uneindeutigkeit 321 
 
Kapitel 15: Überladen von Operatoren 325 
Operatorfunktion als Element der Klasse 325 
Einschränkungen beim Überladen von Operatoren 330 
Überladene Operatoren als friend-Funktionen 331 
Überladen von new und delete 336 
Überladen einiger spezieller Operatoren 343 
Überladen des Komma-Operators 348 
 
Kapitel 16: Vererbung 351 
Zugriffskontrolle Basisklasse 351 
Vererbung und geschützte Elemente 353 
Geschützte Vererbung 356 
Erben von mehreren Basisklassen 357 
Konstruktoren, Destruktoren und Vererbung 358 
Zugriffsrechte vergeben 364 
Virtuelle Basisklassen 366 
 
Kapitel 17: Virtuelle Funktionen und Polymorphie 371 
Virtuelle Funktionen 371 
Das Attribut virtual wird geerbt 375 
Virtuelle Funktionen sind hierarchisch 376 
Rein virtuelle Funktionen 378 
Virtuelle Funktionen verwenden 380 
Frühe und späte Bindung 382 
 
Kapitel 18: Templates 385 
Generische Funktionen 385 
Generische Funktionen anwenden 392 
Generische Klassen 395 
Die Schlüsselwörter typename und export 404 
Die Kraft von Templates 404 
 
Kapitel 19: Ausnahmebehandlung 407 
Grundlagen der Ausnahmebehandlung 407 
Behandlung von Ausnahmen abgeleiteter Klassen 414 
Optionen der Ausnahmebehandlung 415 
terminate() und unexpected() verstehen 419 
Die Funktion uncaught_exception() 421 
Die Klassen exception und bad_exception 421 
Ausnahmebehandlung anwenden 422 
 
Kapitel 20: Die Grundlagen der I/O von C++ 423 
Alte und moderne I/O in C++ 423 
C++-Streams 424 
Die Stream-Klassen von C++ 424 
Formatierte I/O 426 
Überladen von « und » 435 
Erzeugen eigener Extraktoren 440 
Erzeugen eigener Manipulator-Funktionen 442 
 
Kapitel 21: Datei-I/O in C++ 447 
 und die Datei-Klassen 447 
Öffnen und Schließen einer Datei 447 
Lesen und Schreiben von Textdateien 450 
Unformatierte und binäre I/O 452 
Weitere Funktionen get() 456 
getline() 456 
EOF feststellen 458 
Die Funktion ignore() 459 
peek() und putback() 460 
flush() 460 
Beliebiger Zugriff 461 
Status der I/O 464 
Benutzerdefinierte I/O und Dateien 466 
 
Kapitel 22: Run-Time-Type-ID und die Cast-Operatoren 469 
Run-Time-Type-Identifizierung (RTTI) 469 
Die Cast-Operatoren 477 
 
Kapitel 23: Namensräume, Konvertierungsfunktionen un weitere fortgeschrittene Themen 487 
Namensräume 487 
Der Namensraum std 494 
Konvertierungsfunktionen erzeugen 496 
const-Elementfunktionen und mutable 499 
volatile-Elementfunktionen 500 
Explizite Konstruktoren 501 
Verwenden des Schlüsselworts asm 502 
Link-Spezifikation 503 
Array-basierte I/O 504 
Dynamische Arrays verwenden 508 
Binäre I/O und Array-basierte Streams 509 
Zusammenfassung der Unterschiede von C und C++ 510 
 
Kapitel 24: Einführung in die Standard-Template-library 511 
Ein Überblick über die STL 511 
Die Container-Klasse 514 
Allgemeine Theorie der Operationen 515 
Vektoren 516 
Zugriff auf einen Vektor mit einem Iterator 519 
Listen 524 
push_front() oder push_back()? 528 
Maps 533 
Algorithmen 538 
Funktionsobjekte verwenden 546 
Die Klasse string 553 
Abschließende Gedanken zur STL 562 
 
Teil III Die Standardfunktionenbibliothek 563 
 
Kapitel 25: C-basierte I/O-Punktionen 565 
clearerr 565 
fclose 566 
feof 566 
ferror 566 
fflush 567 
fgetc 567 
fgetpos 567 
fgets 568 
fopen 568 
fprintf 569 
fputc 569 
fputs 570 
fread 570 
freopen 571 
fscanf 571 
fseek 571 
fsetpos 572 
ftell 572 
fwrite 572 
getc 573 
getchar 573 
gets 573 
perror 574 
printf 574 
putc 576 
putchar 576 
puts 577 
remove 577 
rename 577 
rewind 577 
scanf 577 
setbuf 580 
setvbuf 580 
sprintf 581 
sscanf 581 
tmpfile 581 
tmpnam 582 
ungetc 582 
vprintf, vfprintf, vsprintf und vsnprintf 582 
 
Kapitel 26: Punktionen für Zeichenketten und Zeichen 583 
isalnum 583 
isalpha 584 
iscntrl 584 
isdigit 584 
isgraph 584 
islower 585 
isprint 585 
ispunct 585 
isspace 585 
isupper 585 
isxdigit 586 
memchr 586 
memcmp 586 
memcpy 587 
memmove 587 
memset 587 
strcat 587 
strchr 588 
strcmp 588 
strcoll 588 
strcpy 589 
strcspn 589 
strerror 589 
strlen 589 
strncat 589 
strncmp 590 
strncpy 590 
strpbrk 591 
strrchr 591 
strspn 591 
strstr 591 
strtok 592 
strxfrm 592 
tolower 592 
toupper 592 
 
Kapitel 27: Die mathematischen Funktionen 593 
acos 594 
asin 594 
atan 594 
atan2 594 
ceil 595 
cos 595 
cosh 595 
exp 595 
fabs 596 
floor 596 
fmod 596 
frexp 596 
Idexp 597 
log 597 
log10 597 
modf 597 
pow 598 
sin 598 
sink 598 
sqrt 598 
tan 599 
tanh 599 
 
Kapitel 28: Zeit, Datum und Lokalisierung 601 
asctime 601 
clock 602 
ctime 602 
difftime 602 
gmtime 603 
localeconf 603 
localtime 604 
mktime 604 
setlocale 605 
strftime 605 
time 607 
 
Kapitel 29: Die dynamische Allozierung 609 
calloc 609 
free 610 
malloc 610 
realloc 610 
 
Kapitel 30: Hilfsfunktionen 611 
abort 611 
abs 612 
assert 612 
atexit 612 
atof 613 
atoi 613 
atol 613 
bsearch 613 
div 614 
exit 614 
getenv 615 
labs 615 
Idiv 615 
longjmp 616 
mblen 616 
mbstowcs 616 
mbtowc() 617 
qsort 617 
raise 617 
rand 618 
setjmp 618 
signal 618 
srand 619 
strtod 619 
strtol 620 
strtoul 620 
system 620 
va_arg, va_start, va_end 621 
wcstombs 621 
wctomb 622 
 
Kapitel 31: Die wide character-Funktionen 623 
Wide character-Klassifizierungsfunktionen 624 
Wide character-I/O-Funktionen 626 
Wide character-Funktionen für Zeichenketten 627 
Wide character-Konvertierungen 628 
Wide character-Funktionen für Arrays 628 
Multibyte/wide character Konvertierung 629 
 
Teil IV Die Klassenbibliothek von Standard-C++ 631 
 
Kapitel 32: Die Standard-l/O-Klassen von C++ 633 
Die I/O-Klassen 633 
Die I/O-Header 635 
Die Format-Flags und I/O-Manipulatoren 636 
Verschiedene Datentypen 638 
Überladene Operatoren « und » 639 
Allgemeine I/O-Funktionen 640 
 
Kapitel 33: Die Container-Klassen der STL 653 
Die Container-Klassen 654 
bitset 655 
deque 657 
list 659 
map 661 
multimap 663 
multiset 665 
queue 667 
priority_queue 667 
set 668 
Stack 670 
vector 671 
 
Kapitel 34: Die STL Algorithmen 675 
adjacent_find 676 
binary_search 676 
copy 676 
copy_backward 676 
count 677 
count_if 677 
equal 677 
equal_range 677 
fill und fill_n 678 
find 678 
fmd_end 678 
fmd_first_of 679 
fmd_if 679 
for_each 679 
generate und generate_n 679 
includes 680 
inplace_merge 680 
iter_swap 680 
lexicographical_compare 681 
lower_bound 681 
make_heap 681 
max 682 
max_element 682 
merge 682 
min 683 
min_element 683 
mismatch 683 
next_permutation 684 
nth_element 684 
partial_sort 684 
partial_sort_copy 685 
partition 685 
pop_heap 685 
prev_permutation 685 
push_heap 686 
random_shuffle 686 
remove, remove_if, remove_copy und remove_copy_if 686 
replace, replace_copy, replace_if und replace_copy_if 687 
reverse und reverse_copy 688 
rotate und rotate_copy 688 
search 688 
search_n 689 
set_difference 689 
set_intersection 690 
set_symmetric_difference 690 
set_union 691 
sort 691 
sort_heap 691 
stable_partition 692 
stable_sort 692 
swap 692 
swap_ranges 692 
transform 693 
unique und unique_copy 693 
upper_bound 694 
 
Kapitel 35: Iteratoren, Allocatoren und Funktionsobjekte 695 
Iteratoren 695 
Funktionsobjekte 703 
Allocatoren 708 
 
Kapitel 36: Zeichenketten in C++ 711 
Die Klasse basic_string 711 
Die Klasse char_traits 719 
 
Kapitel 37: Die numerischen Klassen 721 
Die Klasse complex 721 
Die Klasse valarray 724 
Die numerischen Algorithmen 736 
 
Kapitel 38: Ausnahmen und verschiedene Klassen 741 
Ausnahmen 741 
Die Klasse auto_ptr 743 
Die Klasse pair 744 
Lokalisierung 745 
Andere interessante Klassen 746 
 
Teil V C++ anwenden 747 
 
Kapitel 39: Neue Klassen integrieren: Eine eigene Klass für Zeichenketten 749 
Die Klasse StrType 749 
Konstruktoren und Destruktor 751 
I/O auf Zeichenketten 752 
Die Zuweisungsfunktionen 753 
Verknüpfen 754 
Teilzeichenketten subtrahieren 756 
Die Vergleichsoperatoren 758 
Weitere Funktionen für Zeichenketten 759 
Die gesamte Klasse StrType 759 
Die Klasse StrType verwenden 767 
Neue Typen erzeugen und integrieren 769 
Eine Herausforderung 769 
 
Kapitel 40: Ein objektorientierter Parser für Ausdrücke 771 
Ausdrücke 771 
Ausdrücke parsen: Das Problem 772 
Einen Ausdruck parsen 773 
Die Parserklasse 774 
Einen Ausdruck zerlegen 775 
Ein einfacher Parser für Ausdrücke 777 
Den Parser verstehen 781 
Variablen dem Parser zufügen 782 
Syntaxüberprüfung in Parsern rekursiven Abstiegs 790 
Einen genetischen Parser bauen 790 
Einiges zum Ausprobieren 797 
 
Stichwortverzeichnis 798 
        
        
        
        
        
         
Weitere Titel aus der Reihe die ENT-PACKTE Referenz   |   
 | 
 |