Home
Standard-C++ Seminare (compilerunabhängig)
Diese Seminare werden von Prof. Richard Kaiser gehalten, der
seit vielen Jahren Seminare für zahlreiche Firmen durchführt (Referenzen).
Er ist der Verfasser der Bücher „C++ mit
Microsoft Visual C++ 2008“ und „C++ mit dem
Borland C++Builder“, und ist Mitglied im DIN
Normierungsausschuss Informationstechnik NI-22.
Teil 3: Exception-Handling, Templates und die STL
Dieser Kurs ist der dritte von drei
aufeinander abgestimmten Kursen, in denen der gesamte Sprachumfang des
aktuellen ISO C++-Standards behandelt wird. Dabei stehen Zusammenhänge und
Sprachkonzepte im Vordergrund vor Detailinformationen, die man auch in der
Online-Hilfe findet.
|
Zielgruppe:
|
Software-Entwickler, die
mit C++ programmieren wollen.
|
|
Voraussetzungen:
|
C-Kenntnisse im Umfang der
Kurse
"Teil 1: C-Grundlagen"
"Teil 2: Objektorientierte Programmierung"
|
|
Methodik:
|
Vortrag mit vielen Übungen,
in denen praxisnahe Programme entwickelt werden
|
|
Ort und Zeit:
|
Dieses Seminar wird als Firmenseminar (inhouse)
angeboten.
|
|
Dauer:
|
5 Tage
|
Templates sind Vorlagen, aus denen der Compiler Klassen und Funktionen
erzeugt. Die Standard Template Library (STL) ist eine Bibliothek, die zum
ANSI/ISO-Standard von C++ gehört und die auf der Basis von Templates
implementiert ist. Sie enthält viele Algorithmen und Datenstrukturen, die eine
einfache Lösung häufig auftretender Programmieraufgaben ermöglichen. Aufgrund
ihrer speziellen Architektur ist sie vielseitiger, leistungsfähiger, sicherer
und einfacher zu benutzen als viele andere Bibliotheken. Da sowohl Templates
als auch die STL in der jetzt gültigen Form erst relativ spät in C++
aufgenommen wurden, sind sie noch nicht sehr bekannt.
In diesem Kurs werden Templates und die STL vorgestellt. Dabei werden die
Vorteile der STL-Klassen gegenüber den entsprechenden
konventionellen Sprachelementen gezeigt (z.B. Stringklassen –
nullterminierte Strings, Containerklassen - Arrays, Streamklassen
- stdio-Funktionen). Außerdem wird gezeigt, wie die
STL, ihre Container und ihre Algorithmen aufgebaut sind und wie man die STL um
eigene Algorithmen erweitern kann. Beim Exception-Handling werden nicht nur die
Sprachelemente, sondern auch die Auswirkungen auf das Programmdesign gezeigt.
Die Kurse „Objektorientierte Programmierung“ und
„Exception-Handling, Templates und die STL“ sind aufeinander
abgestimmt. Sie behandeln alle Erweiterungen des Sprachumfangs von C++ nach dem
ANSI/ISO-Standard gegenüber C. Dabei stehen Zusammenhänge und Sprachkonzepte im
Vordergrund vor Detailinformationen, die man auch in der Online-Hilfe findet.
Der Lehrstoff wird durch viele Übungen ergänzt, in denen die Teilnehmer
praxisnahe Programme entwickeln.
Inhalt
Eine Entwicklungsumgebung
Microsoft Visual C++ 2010
(Konsolenanwendungen), oder
Codegear (früher Borland) C++ Builder
2010 (Konsolenanwendungen), oder
GNU g++ auf der Kommandozeile
Die Stringsklasse string der C++-Standardbibliothek
- Die Stringklasse string
- Stringstreams
Exception-Handling (Ausnahmebehandlung)
- Die try-Anweisung
- Exception-Handler und
Exceptions der Standardbibliothek
- Der Programmablauf bei
Exceptions
- throw-Ausdrücke
und selbst definierte Exceptions
- Fehler, Exceptions und die
Korrektheit von Programmen
- Die Freigabe von Ressourcen
bei Exceptions
- Die Klasse shared_ptr
- Exception-Spezifikationen
- Die Funktion terminate
Container der Standardbibliothek
· Sequenzielle Container der Standardbibliothek
- Die Container-Klasse vector
- Algorithmen der
Standardbibliothek
- Die Container-Klassen
list und deque
- Die Container-Adapter stack, queue
und priority_queue
- Container mit Zeigern
- Die Container-Klasse bitset
- Assoziative Container
- Die Container set
und multiset
- Die Container map
und multimap
- Iteratoren der
assoziativen Container
- Dateien
- Stream-Variablen,
ihre Verbindung mit Dateien und ihr Zustand
- Fehler und der
Zustand von Stream-Variablen
- Lesen und Schreiben
von Binärdaten mit read und write
- Lesen und Schreiben
von Daten mit den Operatoren << und >>
- Manipulatoren und
Funktionen zur Formatierung von Texten
- Dateibearbeitung im
Direktzugriff
- Die numerischen Klassen der
Standardbibliothek
- Komplexe Zahlen
- Valarrays und Slices
Separate Kompilation und Namensbereiche
· Projekte
- Bindung
- Deklarationen und
Definitionen
- Header-Dateien und
Bibliotheken
- Der Aufruf von in C
geschriebenen Funktionen
- Namensbereiche
- Die Definition von
benannten Namensbereichen
- Die Verwendung von
Namen aus Namensbereichen
- Aliasnamen
für Namensbereiche
- Unbenannte
Namensbereiche
- Module und das
Geheimnisprinzip
Templates und die STL
· Generische Funktionen: Funktions-Templates
- Die Deklaration von
Funktions-Templates mit Typ-Parametern
- Spezialisierungen von
Funktions-Templates
- Funktions-Templates
mit Nicht-Typ-Parametern
- Explizit instanziierte Funktions-Templates
- Explizit
spezialisierte und überladene Templates
- Rekursive
Funktions-Templates
- Generische Klassen:
Klassen-Templates
- Die Deklaration von
Klassen-Templates mit Typ-Parametern
- Spezialisierungen von
Klassen-Templates
- Templates mit
Nicht-Typ-Parametern
- Explizit instanziierte Klassen-Templates
- Partielle und
vollständige Spezialisierungen
- Elemente und
friend-Funktionen von Klassen-Templates
- Ableitungen von
Templates
- Exportierte Templates
- Funktionsobjekte in der STL
- Der Aufrufoperator ()
- Prädikate und
arithmetische Funktionsobjekte
- Binder,
Funktionsadapter und Negatoren
- Iteratoren und die STL-Algorithmen
- Die verschiedenen
Arten von Iteratoren
- Umkehriteratoren
- Einfügefunktionen und
Einfügeiteratoren
- Stream-Iteratoren
- Container-Konstruktoren
mit Iteratoren
- STL-Algorithmen
für alle Elemente eines Containers
- Die Algorithmen der STL
- Lineares Suchen
- Zählen
- Der Vergleich von
Bereichen
- Suche nach Teilfolgen
- Minimum und Maximum
- Elemente vertauschen
- Kopieren von
Bereichen
- Elemente
transformieren und ersetzen
- Elementen in einem
Bereich Werte zuweisen
- Elemente entfernen
- Die Reihenfolge von
Elementen vertauschen
- Permutationen
- Partitionen
- Bereiche sortieren
- Binäres Suchen in
sortierten Bereichen
- Mischen von
sortierten Bereichen
- Mengenoperationen auf
sortierten Bereichen
- Heap-Operationen
- Verallgemeinerte
numerische Operationen
Die Inhalte können an die Wünsche der Teilnehmer angepasst
werden.
Kontakt: training @ rkaiser . de
, www.rkaiser.de
R. Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, Tel. 07071-41598, FAX
07071-44473
Stand: 14.6.2010