Objektorientiertes Programmieren mit C++

Empfohlene Schulungsdauer: 5 Tage, insgesamt 30 Zeitstunden

Kursziele

Das Seminar gibt eine fundierte Einführung in die objektorientierte Programmierung mit C++ und macht den Paradigmenwechsel zur prozeduralen Programmierung in C deutlich. C++ ist eine mächtige aber auch komplexe Sprache, deren zentrale Punkte in dieser Weiterbildung angegangen werden; Teilnehmer lernen, objektorientierte und effiziente Implementierungen zu realisieren und erhalten einen Überblick über die C++ Standard Bibliothek.

Zielgruppe

Software-Entwickler, Programmierer, Systementwickler

Voraussetzungen

Der Kurs ›C-Programmierung, Teil 1‹ oder vergleichbare Kenntnisse. Objektorientierte Kenntnisse werden nicht vorausgesetzt.

Seminarinhalte

  • Wiederholung zentraler C-Elemente
    - Kommentare
    - Datentypen
    - Operatoren
    - Kontrollstrukturen
    - Funktionen
    - Zeiger (Pointer), Speicherverwaltung, Arrays, Zeichenketten (char-Felder)
    - Ein-/Ausgabe
  • Von C zu C++
    - Entstehungsgeschichte, C++ ISO Standard
    - C++-Compiler
    - Entwicklungsumgebungen
    - Header-Dateien im C++ ISO Standard; von <xxx.h> nach <cxxx>
    - Aufzählungen, enum
    - Überladene Funktionen, inline-Funktionen, vorbelegte Parameter
    - Konstant sein mit const und dennoch modifizieren mit mutable
    - Mischen von C und C++
  • Objektorientierung in C++
    - Objektorientierte Konzepte, UML
    - Prozedurale und objektorientiere Modellierung
    - Klassen deklarieren, Unterschiede zu Strukturen
    - Member-Funktionen, Variablen
    - Objekte erzeugen und zerstören, new, delete
    - Konstruktoren und Destruktoren
    - Copy-Konstruktor
    - this-Pointer
    - Datenkapselung, Geheimnisprinzip, Zugriffsrechte public, private
    - Klasseneigenschaften, static
    - Typanpassung und Typumwandlung, neue C++-Typecasts
    - Gültigkeitsbereiche und Namensräume, using
  • Überladene Operatoren
    - Allgemeine Prinzipien, Vor- und Nachteile
    - Schlüsselwort operator
    - Arithmetische Operatoren überladen
    - Prefix- und Postfix-Formen von ++ und --
    - Zuweisungsoperator überladen
    - Index-Operator [] überladen
    - new und delete überladen
    - Nicht-überladbare Operatoren
  • Fortgeschrittene objektorientierte Konzepte
    - Assoziationen, Ausblick auf Collection-Klassen
    - Konzepte Ober- und Unterklasse
    - Einfachvererbung und Mehrfachvererbung
    - protected und friend
    - Konstruktoren/Destruktoren in der Vererbungshierarchie
    - Polymorphie und dynamische Bindung
    - Virtuelle Funktionen
    - Rein virtuelle Funktionen und abstrakte Klassen
    - Realisierungen durch V-Table (Virtual Method Table)
    - Virtueller Destruktor
    - Verschachtelte Klassen und Sichtbarkeiten
    - Run-time type information (RTTI) in C++
    - typeid-Operator
    - Typkonvertierung zur Laufzeit: Der dynamic_cast-Operator
  • Ausnahmen (Exceptions)
    - Ausnahmen auslösen mit throw
    - Ausnahmen abfangen, Catch-Handler, try-catch, ...
    - Ausnahmen bei Ressouren-Problemen
    - Fehlerklassen
    - Standard-Exceptions und System-Exceptions, Header-Datei <exception>, what()-Funktion
    - Ausnahmen in Konstruktoren und Destruktoren, terminate()-Funktion
  • Templates
    - Generische Programmierung mit Templates
    - Template-Parameter, Template-Argumente
    - Arten von Templates: Funktions-Template, Klassen-Template
    - Implizite und explizite Template Instanziierung
    - Template-Spezialisierung, Template-Klassen und Vererbung
  • Ausblick
    - STL (Standard Template Library)
    - Boost C++ Libraries

Software

Basis des C++-Kurses ist ein beliebiger C++-Compiler wie g++ aus der ›GNU Compiler Collection‹ (GCC), Microsoft Visual C++ (etwa aus der Microsoft Visual C++ 2008 Express Edition), Intel C++ Compiler oder Borland C++ Compiler.

Schlagwörter

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

tutego™ bietet Ihnen viele weitere Schulungen. Unsere Kategorien: Java, .NET (C#, VB.NET, ASP.NET, ...), Programmiersprachen (iPhone, PHP, ...), Softwaredesign (UML, Pattern, ...), XML (XSLT, Schema), SAP (ABAP, ...), Server Administration (SVN, Apache, ...), Datenbanken (Oracle, MySQL, ...), Web-Programmierung (JavaScript, jQuery, Flex), Microsoft Office, AutoCAD, Sage KHK, Lotus Notes/Domino.

[Nach oben]