C++ als nicht-objektorientierte Spracherweiterung von C
Zielgruppe:
Softwareentwickler/innen von Embedded-C-Applikationen, die die Vorteile von C++ ohne Verwendung der objektorientierten Programmierung nutzen möchten.
Vorkenntnisse:
Programmiererfahrung in C.
Dauer:
1 Tag
Beschreibung:
Der Umstieg von C auf C++ wird üblicherweise gemacht, um von den Vorteilen der objektorientierten Programmierung (OOP) profitieren zu können. Die Transformation einer traditionell entwickelten C-Applikation in ein objektorientiertes C++-Programm ist aufgrund der prinzipiell anderen Art der Programmierung in der Regel sehr aufwändig und führt zu einer völlig anderen Codestruktur. Aus diesem Grund wird C++ oft nur in neuen Projekten eingesetzt.
Allerdings haben viele Spracheigenschaften von C++ gar nichts mit OOP zu tun. Aufgrund der Rückwärtskompatibilität von C++ können diese Spracheigenschaften deshalb auch in bereits existierenden C-Anwendungen eingesetzt werden, ohne deren prinzipielle Codestruktur ändern zu müssen, und wirken somit wie eine Spracherweiterung von C.
Der Kurs stellt diese Spracheigenschaften vor und zeigt auch, wie C- und C++-Module zusammenarbeiten können, um z.B. Programmteile, die (noch) nicht umgestellt werden sollen, weiter nutzen zu können.
Durch die Verwendung von C++ steht nicht nur ein größerer Sprachumfang als in C zur Verfügung, sondern bietet sich auch die Möglichkeit, gefährliche Sprachmittel der C-Sprache durch sicherere C++-Alternativen zu ersetzen. Zusammen mit der höheren Typsicherheit des Compilers führt dies dazu, dass mehr Fehler bereits zum Übersetzungszeitpunkt erkannt werden können und somit weniger Zeit für die Fehlersuche benötigt wird.
Inhalt:
Einführung
- Entstehung von C++
- Entwurfsziele von C++
- Beispiele für die Effizienz von C++
- Generelle Richtlinien
Nicht-Objektorientierte Sprachelemente
- Die using-Anweisung
- Datentyp bool
- Aufzählungsdatentypen
- Referenzen
- Bereichsbasierte for-Schleife
- Funktionsüberladung
- Nutzung von C-Modulen aus C++
- Vorbelegungsparameter
- Namensbereiche
- Dynamische Speicherverwaltung
- Nullpointer
- Überladung von Operatoren
- Cast-Operatoren