| Zeile 1: | Zeile 1: | ||
| − | Da C++ eine Weiterentwicklung von C ist, sollte man sich auch den Wikiartikel über [[C]] zu Gemüte führen. | + | Da C++ eine Weiterentwicklung von [[C]] ist, sollte man sich auch den Wikiartikel über [[C]] zu Gemüte führen. |
= Überblick = | = Überblick = | ||
Die meisten C++ Features sind ohne zusätzlichen Aufwand sofort verfügbar. Nur für die folgenden Features werden Hilfsfunktionen benötigt, welche der C++ Compiler von Haus aus nicht zur Verfügung stellt: | Die meisten C++ Features sind ohne zusätzlichen Aufwand sofort verfügbar. Nur für die folgenden Features werden Hilfsfunktionen benötigt, welche der C++ Compiler von Haus aus nicht zur Verfügung stellt: | ||
* [[C++#Startup-Code | Startup-Code]] | * [[C++#Startup-Code | Startup-Code]] | ||
| − | * [[C++#rein virtuelle Funktionen | | + | * [[C++#rein virtuelle Funktionen | Rein virtuelle Funktionen]] |
* [[C++#globale/statische Objekte | globale/statische Objekte]] | * [[C++#globale/statische Objekte | globale/statische Objekte]] | ||
* [[C++#new/delete | new/delete]] | * [[C++#new/delete | new/delete]] | ||
* [[C++#RTTI | RTTI (= Runtime type information)]] | * [[C++#RTTI | RTTI (= Runtime type information)]] | ||
* [[C++#Exceptions | Exceptions]] | * [[C++#Exceptions | Exceptions]] | ||
| − | Da jeder Compilerhersteller eine eigene ABI (= Application Binary Interface) zur Verfügung stellt sind auch die Funktionsnamen sowie auch der Funktionsumfang, von Compiler zu Compiler verschieden. | + | Da jeder Compilerhersteller eine eigene ABI (= Application Binary Interface) zur Verfügung stellt, sind auch die Funktionsnamen sowie auch der Funktionsumfang, von Compiler zu Compiler verschieden. |
= Startup-Code = | = Startup-Code = | ||
| − | Dieser Code wird ausgeführt bevor die main-Funktion des Programmes/Kernels aufgerufen wird und muss zumindest die Kommandozeilenargumente, mit denen das Programm aufgerufen wurde, an die main-Funktion weiterreichen. | + | Dieser Code wird ausgeführt, bevor die main-Funktion des Programmes/Kernels aufgerufen wird und muss zumindest die Kommandozeilenargumente, mit denen das Programm aufgerufen wurde, an die main-Funktion weiterreichen. |
= rein virtuelle Funktionen = | = rein virtuelle Funktionen = | ||
| Zeile 36: | Zeile 36: | ||
== g++ == | == g++ == | ||
| − | Die Konstruktion der globalen/statischen Objekte ist unter g++ immer gleich. Nur die Destruktion der | + | Die Konstruktion der globalen/statischen Objekte ist unter g++ immer gleich. Nur die Destruktion der Selben hängt von der Verwendung des configure-flags --enable-__cxa_atexit und vom Kommandozeilenparameter -fuse-cxa-atexit / -fno-use-cxa-atexit ab. |
=== Konstruktoren === | === Konstruktoren === | ||