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.
Viele
MFC-Programme stammen noch aus der Zeit von Visual Studio 6 (ab ca. 1998) und
basieren auf dem Sprachumfang des damaligen Visual C++. Inzwischen hat sich der
Sprachumfang von Visual C++ allerdings beträchtlich weiterentwickelt und dem
C++-Standard angenähert.
Gegenstand
dieses Seminars ist das aktuelle, „moderne“ Standard-C++ für
MFC-Programmierer. Der Umfang des Seminars wird an die Wünsche der Teilnehmer
angepasst: Für erfahrene C++/MFC-Programmierer reichen eventuell schon 3 Tage. Für
weniger erfahrene Programmierer oder Sprachumsteiger kann aber ein größerer
Umfang notwendig sein. Mit einem Seminarumfang von 10 Tagen ist eine Einführung
in den größten Teil von Standard-C++ möglich.
Die
meisten Beispiele und Übungen dieses Kurses behandeln MFC-Anwendungen.
|
Zielgruppe: |
Software-Entwickler, die mit Microsoft Visual Studio 2008/2010 in C++ programmieren wollen. |
|
|
Gute Windows-Kenntnisse und Interesse am Programmieren. |
|
|
Vortrag mit vielen Übungen, in denen praxisnahe Programme entwickelt werden |
|
Ort und Zeit: |
Dieses Seminar wird als Firmenseminar (inhouse) angeboten. |
|
Dauer: |
3 Tage (für erfahrene C++/MFC-Programmierer) - 10 Tage (Standard C++ komplett) |
Ein einführendes Beispiel
Der Quelltexteditor und IntelliSense
Kontextmenüs und Symbolleisten
Projekte, Projektdateien und Projektoptionen
Ein- und
mehrzeilige Textboxen, Label
ListBoxen und ComboBoxen
CheckBoxen, RadioButtons, GroupBox und Panel
Hauptmenüs und Kontext-Menüs
Standarddialoge
Ganzzahldatentypen (int, bool,
char usw.)
Gleitkommadatentypen
Standardkonversionen
Elementare Anweisungen (if, for, while usw.)
Die Verwendung der C-Standardbibliotheken (z.B. math.h und cmath)
Arrays und die Klasse CArray
Strukturen (struct und union)
Zeiger und dynamisch erzeugte Variablen (new, delete)
Nullterminierte Strings und zugehörige Bibliotheksfunktionen
typedef
Aufzählungstypen (enum)
Präprozessoranweisungen (Makros, Pragmas)
Ausdrücke
Namensbereiche
Werte- und
Referenzparameter
Funktionszeiger
Rekursion
inline-Funktionen
Default-Argumente
Überladene Funktionen und Operatoren
Projekte,
Bindung und Header-Dateien
Der Aufruf von Funktionen aus C-Bibliotheken in C++
Datenelemente und Elementfunktionen
Objekte und die Zugriffsrechte private und public
Der Aufruf von Elementfunktionen und der this-Zeiger
Konstruktoren und Destruktoren
OO Analyse und Design: Der Entwurf von Klassen
Ein wenig Programmierlogik: Klasseninvarianten und
Korrektheit
Der
Standardkonstruktor
Objekte als Klassenelemente und Elementinitialisierer
friend-Funktionen und
-Klassen
Überladene Operatoren als Elementfunktionen
Der
Copy-Konstruktor
Der Zuweisungsoperator = für
Klassen
Benutzerdefinierte
Konversionen
Explizite Konstruktoren
Statische Klassenelemente
Konstante Klassenelemente und
Objekte
Klassen und Header-Dateien
Die Elemente von abgeleiteten Klassen
Die MFC Basisklasse CObject
Zugriffsrechte auf die Elemente von
Basisklassen
Konstruktoren, Destruktoren und implizit erzeugte Funktionen
OO Design: public Vererbung und "ist
ein"-Beziehungen
OO Design: Komposition und "hat ein"-Beziehungen
Konversionen zwischen public abgeleiteten Klassen
Mehrfachvererbung und virtuelle Basisklassen
Der statische und der dynamische
Datentyp
Virtuelle Funktionen
Die interne Realisierung von virtuellen Funktionen: vptr und
vtbl
Virtuelle Konstruktoren und
Destruktoren
Virtuelle Funktionen in Konstruktoren und
Destruktoren
OO-Design: Der Einsatzbereich von virtuellen
Funktionen
OO-Design und
Erweiterbarkeit
Rein virtuelle Funktionen und abstrakte
Klassen
OO-Design: Virtuelle Funktionen und abstrakte Basisklassen
Interfaces und Mehrfachvererbung
Protokollklassen und
Programmgerüste
Zeiger auf Klassenelemente
Typinformationen mit dem Operator
typeid
Typkonversionen mit dynamic_cast und static_cast
Die try-Anweisung
Exception-Handler und Exceptions der
Standardbibliothek
Vordefinierte MFC-Exceptions
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
Die Stringklasse string der
C++ Standardbibliothek
Die MFC-Stringklasse CString
Stringstreams
Die Container-Klassen vector,
list und deque
Iteratoren
Algorithmen der Standardbibliothek
Die Container-Adapter stack, queue und priority_queue
Container mit Zeigern
Template-basierte MFC Collection Klassen
Die Container set und multiset
Die Container map und multimap
Iteratoren der assoziativen Container
Assoziative MFC Collection Klassen
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
Komplexe Zahlen, Valarrays und Slices
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
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
Der Aufrufoperator ()
Prädikate und arithmetische Funktionsobjekte
Binder, Funktionsadapter und Negatoren
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
Lineares Suchen und Zählen
Suche nach Teilfolgen
Minimum und Maximum
Elemente vertauschen
Kopieren von Bereichen
Elemente transformieren, ersetzen und entfernen
Partitionen und Sortieren
Binäres Suchen in sortierten Bereichen
Mischen von sortierten Bereichen
Mengenoperationen auf sortierten Bereichen
Die Inhalte können an die Wünsche der Teilnehmer angepasst werden.
Kontakt: training @ rkaiser . de
,
R. Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, Tel. 07071-41598, FAX
07071-44473
Stand: 14.6.2010