Hilfe Warenkorb Konto Anmelden
 
 
   Schnellsuche   
     zur Expertensuche                      
C++ Einführung und professionelle Programmierung
  Großes Bild
 
C++ Einführung und professionelle Programmierung
von: Ulrich Breymann
Carl Hanser Fachbuchverlag, 2003
ISBN: 9783446224803
715 Seiten, Download: 3151 KB
 
Format:  PDF
geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop

Typ: A (einfacher Zugriff)

 

 
eBook anfordern
Inhaltsverzeichnis

  Auf einen Blick 12  
  Inhaltsverzeichnis 14  
  Teil I Einführung in die Sprache 24  
     1 Einführung 26  
        1.1 Compiler 29  
     2 Grundlegende Begriffe 30  
        2.1 Das erste Programm 30  
        2.2 Einfache Datentypen und Operatoren 38  
           2.2.1 Ausdruck 39  
           2.2.2 Ganze Zahlen 39  
           2.2.3 Reelle Zahlen 44  
           2.2.4 Zeichen 50  
           2.2.5 Logischer Datentyp 53  
           2.2.6 Referenzen 55  
           2.2.7 Komplexe Zahlen 55  
        2.3 Gültigkeitsbereich und Sichtbarkeit 57  
           2.3.1 Namespace std 59  
        2.4 Kontrollstrukturen 60  
           2.4.1 Anweisungen 60  
           2.4.2 Sequenz (Reihung) 62  
           2.4.3 Auswahl (Selektion, Verzweigung) 62  
           2.4.4 Fallunterscheidungen mit switch 69  
           2.4.5 Schleifen 72  
           2.4.6 Kontrolle mit break und continue 80  
        2.5 Benutzerdefinierte und zusammengesetzte Datentypen 83  
           2.5.1 Aufzählungstypen 83  
           2.5.2 Arrays: Der C++-Standardtyp vector 85  
           2.5.3 Zeichenketten: Der C++-Standardtyp string 91  
           2.5.4 Strukturierte Datentypen 93  
     3 Einfache Ein- und Ausgabe 96  
        3.1 Standardein- und -ausgabe 96  
        3.2 Ein- und Ausgabe mit Dateien 99  
     4 Programmstrukturierung 104  
        4.1 Funktionen 104  
           4.1.1 Aufbau und Prototypen 105  
           4.1.2 Gültigkeitsbereiche und Sichtbarkeit in Funktionen 108  
        4.2 Schnittstellen zum Datentransfer 110  
           4.2.1 Übergabe per Wert 110  
           4.2.2 Übergabe per Referenz 113  
           4.2.3 Gefahren bei der Rückgabe von Referenzen 114  
           4.2.4 Vorgegebene Parameterwerte und variable Parameterzahl 115  
           4.2.5 Überladen von Funktionen 116  
           4.2.6 Funktion main() 119  
           4.2.7 Spezifikation von Funktionen 120  
           4.2.8 Beispiel Taschenrechnersimulation 121  
        4.3 Grundsätze der modularen Gestaltung 127  
           4.3.1 Steuerung der Übersetzung mit #include 128  
           4.3.2 Einbinden vorübersetzter Programmteile 128  
           4.3.3 Dateiübergreifende Gültigkeit und Sichtbarkeit 130  
           4.3.4 Übersetzungseinheit, Deklaration, Definition 133  
           4.3.5 Compilerdirektiven und Makros 135  
        4.4 Funktionstemplates 142  
           4.4.1 Spezialisierung von Templates 145  
           4.4.2 Einbinden von Templates 146  
        4.5 inline-Funktionen 147  
        4.6 Standardfunktionen / Bibliotheken 149  
     5 Objektorientierung 150  
        5.1 Abstrakte Datentypen 150  
        5.2 Klassen und Objekte 152  
           5.2.1 inline-Elementfunktionen 156  
        5.3 Initialisierung und Konstruktoren 157  
           5.3.1 Standardkonstruktor 158  
           5.3.2 Allgemeine Konstruktoren 159  
           5.3.3 Kopierkonstruktor 162  
           5.3.4 Typumwandlungskonstruktor 164  
        5.4 Beispiel: Klasse für rationale Zahlen 166  
           5.4.1 Aufgabenstellung 166  
           5.4.2 Entwurf 167  
           5.4.3 Implementation 171  
        5.5 const-Objekte und Methoden 176  
        5.6 Faustregeln zur Konstruktion von Schnittstellen 177  
        5.7 Destruktoren 180  
        5.8 Wie kommt man zu Klassen und Objekten? Ein Beispiel 182  
           5.8.1 Einige Analyse-Überlegungen 183  
           5.8.2 Design 186  
        5.9 Gegenseitige Abhängigkeit von Klassen 189  
     6 Intermezzo: Zeiger 192  
        6.1 Zeiger und Adressen 192  
        6.2 C-Arrays 196  
           6.2.1 C-Arrays und sizeof 198  
           6.2.2 Indexoperator bei C-Arrays 199  
           6.2.3 Initialisierung von C-Arrays 199  
           6.2.4 Zeigerarithmetik 199  
        6.3 C-Zeichenketten 201  
        6.4 Dynamische Datenobjekte 208  
           6.4.1 Freigeben dynamischer Objekte 211  
        6.5 Zeiger und Funktionen 214  
           6.5.1 Parameterübergabe mit Zeigern 214  
           6.5.2 Parameter des main-Programms 217  
           6.5.3 Gefahren bei der Rückgabe von Zeigern 219  
        6.6 Mehrdimensionale C-Arrays 220  
           6.6.1 Statische mehrdimensionale C-Arrays 220  
           6.6.2 Dynamisch erzeugte mehrdimensionale Arrays 224  
        6.7 Binäre Ein-/Ausgabe 226  
        6.8 Zeiger auf Funktionen 230  
        6.9 Zeiger auf Elementfunktionen und -daten 234  
           6.9.1 Zeiger auf Elementfunktionen 235  
           6.9.2 Zeiger auf Elementdaten 236  
        6.10 this-Zeiger 236  
        6.11 Komplexe Deklarationen lesen 237  
     7 Objektorientierung 240  
        7.1 Eine String-Klasse 240  
           7.1.1 friend-Funktionen 246  
        7.2 Klassenspezifische Daten und Funktionen 248  
           7.2.1 Klassenspezifische Konstante 252  
        7.3 Klassentemplates 253  
           7.3.1 Ein Stack-Template 253  
           7.3.2 Stack mit statisch festgelegter Größe 256  
           7.3.3 Ökonomische Instanziierung von Templates 258  
           7.3.4 Member-Template 260  
           7.3.5 Rekursive Templates 260  
     8 Vererbung 264  
        8.1 Vererbung und Initialisierung 271  
        8.2 Zugriffsschutz 271  
        8.3 Typbeziehung zwischen Ober- und Unterklasse 274  
        8.4 Code-Wiederverwendung 275  
        8.5 Überschreiben von Funktionen in abgeleiteten Klassen 277  
        8.6 Polymorphismus 278  
           8.6.1 Virtuelle Funktionen 278  
           8.6.2 Abstrakte Klassen 284  
           8.6.3 Virtuelle Destruktoren 291  
        8.7 Vererbung und andere Beziehungen 293  
           8.7.1 Vererbung 293  
           8.7.2 Der Teil und das Ganze 296  
           8.7.3 Assoziation 296  
           8.7.4 Benutzt-Beziehung 298  
        8.8 Mehrfachvererbung 298  
           8.8.1 Namenskonflikte 302  
           8.8.2 Virtuelle Basisklassen 304  
           8.8.3 Virtuelle Basisklassen und Initialisierung 305  
     9 Überladen von Operatoren 308  
        9.1 Rationale Zahlen – noch einmal 310  
           9.1.1 Arithmetische Operatoren 310  
           9.1.2 Ausgabeoperator << 313  
        9.2 Eine Klasse für Vektoren 315  
           9.2.1 Index-Operator[ ] 318  
           9.2.2 Zuweisungsoperator = 320  
           9.2.3 Mathematische Vektoren 323  
           9.2.4 Multiplikations-Operator 324  
        9.3 Zuweisungsoperator und Vererbung1 326  
        9.4 Inkrement-Operator ++ 330  
        9.5 Typumwandlungsoperator 334  
        9.6 Smart-Pointer: Operatoren -> und * 336  
           9.6.1 Smart Pointer und die C++-Standardbibliothek 342  
        9.7 Objekte als Funktionen 343  
     10 Fehlerbehandlung 346  
        10.1 Ausnahmebehandlung 348  
           10.1.1 Exception-Spezifikation in Deklarationen 352  
           10.1.2 Exception-Hierarchie in C++ 352  
           10.1.3 Besondere Fehlerbehandlungsfunktionen 355  
           10.1.4 Erkennen logischer Fehler 356  
           10.1.5 Durch Exceptions verursachte Speicherlecks vermeiden 359  
        10.2 Speicherbeschaffung mit new 360  
     11 Ein Werkzeugkasten 364  
        11.1 Behälterklassen (Container) 364  
           11.1.1 Container-Arten 367  
        11.2 Listen 368  
        11.3 Warteschlangen 375  
        11.4 Iteratoren 379  
           11.4.1 Iterator für eine Listen-Klasse 381  
        11.5 Sortierte Listen 386  
        11.6 Binärer Suchbaum 391  
        11.7 Trennung von Schnittstelle und Implementation 397  
           11.7.1 Entkopplung durch abstrakte Basisklassen 397  
           11.7.2 Handles 399  
        11.8 Mehrdimensionale Matrizen 402  
           11.8.1 Zweidimensionale Matrix 403  
           11.8.2 Dreidimensionale Matrix 406  
        11.9 Fehlersuche mit trace-Objekten 409  
           11.9.1 Klasse trace 411  
           11.9.2 Anwendungsbeispiel 415  
     12 Vermischtes 418  
        12.1 Namensräume 418  
        12.2 C++-Header 421  
        12.3 Einbinden von C-Funktionen 423  
        12.4 Standard-Typumwandlungen 423  
        12.5 Standard-Typumwandlungsoperatoren 425  
        12.6 Typinformationen zur Laufzeit 428  
           12.6.1 Typidentifizierung mit typeid() 428  
           12.6.2 Anwendung: Eine Menge graphischer Objekte 429  
           12.6.3 Vor- und Nachteile der Laufzeittyp-Information 435  
        12.7 Unions 436  
        12.8 Bitfelder 437  
        12.9 Netzwerk-Programmierung 438  
        12.10 GUI-Programmierung 439  
     13 Dateien und Ströme 442  
        13.1 Ausgabe 443  
           13.1.1 Formatierung der Ausgabe 445  
        13.2 Eingabe 449  
           13.2.1 Eingabe von Leerdaten mit Return 452  
        13.3 Manipulatoren 454  
           13.3.1 Eigene Manipulatoren 458  
        13.4 Fehlerbehandlung 459  
        13.5 Typumwandlung von Dateiobjekten nach bool 461  
        13.6 Arbeit mit Dateien 462  
           13.6.1 Positionierung in Dateien 463  
           13.6.2 Lesen und Schreiben in derselben Datei 464  
        13.7 Eingabe benutzerdefinierter Typen 466  
        13.8 Umleitung auf Strings 467  
  Teil II Die C++-Standardbibliothek 470  
     14 Aufbau und Übersicht 472  
        14.1 Auslassungen 474  
        14.2 Beispiele des Buchs und die C++-Standardbibliothek 475  
     15 Hilfsfunktionen und -klassen 478  
        15.1 Paare 478  
           15.1.1 Relationale Operatoren 479  
        15.2 Funktionsobjekte 479  
           15.2.1 Arithmetische, vergleichende und logische Operationen 480  
           15.2.2 Funktionsobjekte zum Negieren logischer Prädikate 481  
           15.2.3 Binden von Argumentwerten 482  
           15.2.4 Zeiger auf Funktionen in Objekte umwandeln 482  
     16 Container 484  
        16.1 Notation für Iteratoren und Bereiche 485  
        16.2 Bitset 486  
        16.3 Deque 489  
        16.4 List 492  
        16.5 Map 495  
           16.5.1 Multimap 499  
        16.6 Queue 500  
           16.6.1 Priority-Queue 501  
        16.7 Set 502  
           16.7.1 Multiset 506  
        16.8 Stack 506  
        16.9 Vector 507  
           16.9.1 vector 510  
     17 Iteratoren 514  
        17.1 Iterator-Kategorien 515  
        17.2 distance() und advance() 517  
        17.3 Reverse-Iteratoren 517  
        17.4 Insert-Iteratoren 518  
        17.5 Stream-Iteratoren 520  
     18 Algorithmen 522  
        18.1 for_each 522  
        18.2 find und find_if 522  
        18.3 find_end 523  
        18.4 find_first_of 524  
        18.5 adjacent_find 524  
        18.6 count 525  
        18.7 mismatch 525  
        18.8 equal 526  
        18.9 search 527  
        18.10 search_n 527  
        18.11 copy und copy_backward 528  
        18.12 swap, iter_swap und swap_ranges 529  
        18.13 transform 530  
        18.14 replace und Varianten 531  
        18.15 fill und fill_n 532  
        18.16 generate und generate_n 532  
        18.17 remove und Varianten 533  
        18.18 unique 534  
        18.19 reverse 535  
        18.20 rotate 535  
        18.21 random_shuffle 536  
        18.22 partition 537  
        18.23 sort 538  
           18.23.1 partial_sort 540  
        18.24 nth_element 541  
        18.25 Binäre Suche 542  
           18.25.1 binary_search 542  
           18.25.2 lower_bound 542  
           18.25.3 upper_bound 543  
           18.25.4 equal_range 543  
        18.26 Verschmelzen (Mischen) 545  
           18.26.1 Verschmelzen an Ort und Stelle 547  
        18.27 Mengenoperationen auf sortierten Strukturen 548  
           18.27.1 includes 548  
           18.27.2 set_union 549  
           18.27.3 set_intersection 550  
           18.27.4 set_difference 551  
           18.27.5 set_symmetric_difference 552  
        18.28 Heap-Algorithmen 553  
           18.28.1 pop_heap 555  
           18.28.2 push_heap 556  
           18.28.3 make_heap 556  
           18.28.4 sort_heap 557  
        18.29 Minimum und Maximum 557  
        18.30 Lexikographischer Vergleich 558  
        18.31 Permutationen 559  
     19 Ein- und Ausgabe 562  
        19.1 Ergänzungen 563  
           19.1.1 Streams verbinden mit tie() 563  
           19.1.2 locale-Objekt ermitteln 563  
           19.1.3 sentry 563  
     20 Nationale Besonderheiten 566  
        20.1 Sprachumgebungen festlegen und ändern 566  
           20.1.1 locale-Elementfunktionen 567  
           20.1.2 Namespace std-globale Funktionen 568  
        20.2 Zeichenklassifizierung und -umwandlung 568  
        20.3 Kategorien 569  
           20.3.1 collate 569  
           20.3.2 ctype 570  
           20.3.3 numeric 572  
           20.3.4 monetary 574  
           20.3.5 time 577  
           20.3.6 messages 580  
        20.4 Konstruktion eigener Facetten 580  
     21 Numerisches 582  
        21.1 Komplexe Zahlen 582  
        21.2 Grenzwerte von Zahltypen 583  
        21.3 Halbnumerische Algorithmen 585  
           21.3.1 accumulate 585  
           21.3.2 inner_product 586  
           21.3.3 partial_sum 587  
           21.3.4 adjacent_difference 588  
        21.4 Optimierte numerische Arrays (valarray) 589  
           21.4.1 Konstruktoren 590  
           21.4.2 Elementfunktionen 590  
           21.4.3 Binäre Valarray-Operatoren 593  
           21.4.4 Mathematische Funktionen 595  
           21.4.5 slice 597  
           21.4.6 slice_array 598  
           21.4.7 gslice 599  
           21.4.8 gslice_array 602  
           21.4.9 mask_array 602  
           21.4.10 indirect_array 603  
     22 String 606  
     23 Typerkennung zur Laufzeit 616  
     24 Speichermanagement 618  
        24.1 618  
        24.2 619  
     25 C-Header 622  
        25.1 622  
        25.2 622  
        25.3 623  
        25.4 623  
        25.5 623  
        25.6 624  
        25.7 624  
        25.8 624  
        25.9 624  
        25.10 624  
        25.11 624  
        25.12 625  
        25.13 626  
        25.14 626  
        25.15 627  
           25.15.1 Abweichung vom C-Standard 628  
           25.15.2 Funktionen für C-Strings 628  
           25.15.3 Funktionen für C-Strings maximaler Länge 629  
           25.15.4 Funktionen für Bytefelder 630  
        25.16 630  
           25.16.1 Datentypen 630  
           25.16.2 Funktionen 631  
     26 Nachwort 634  
  A Anhang 636  
     A.1 Programmierhinweise 636  
     A.2 Lösungen zu einigen Übungsaufgaben 639  
     A.3 Compilerbefehle 668  
     A.4 Make-Dateien 669  
     A.5 Die wichtigsten C++-Schlüsselwörter 671  
     A.6 ASCII-Tabelle 671  
     A.7 Rangfolge der Operatoren 674  
  Literaturverzeichnis 676  
  OOP-Glossar 678  
  Stichwortverzeichnis 686  
  Abbildungsverzeichnis 712  
  Tabellenverzeichnis 714  


nach oben


  Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zu eBooks?

  Medientyp
  eBooks
  eJournal
  alle

  Navigation
Belletristik / Romane
Computer
Geschichte
Kultur
Medizin / Gesundheit
Philosophie / Religion
Politik
Psychologie / Pädagogik
Ratgeber
Recht
Reise / Hobbys
Sexualität / Erotik
Technik / Wissen
Wirtschaft

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek
© 2008-2024 ciando GmbH | Impressum | Kontakt | F.A.Q. | Datenschutz