003
06.03.2008, 11:38 Uhr
0xdeadbeef
Gott (Operator)
|
Der Compiler generiert implizit einen Default-Konstruktor, der die Default-Konstruktoren der Member-Variablen aufruft und ansonsten garnichts tut. Zum Beispiel:
C++: |
#include <iostream>
struct A { A() { std::cout << "A::A()" << std::endl; } };
struct B { A a; };
int main() { B b; }
|
wird die Ausgabe
erzeugen, weil der implizit erstellte Default-Konstruktor von B A::A() aufruft. Ein Default-Konstruktor wird erzeugt, wenn keine anderen Konstruktoren spezifiziert sind (irgendwie muss das Objekt ja erstellt werden), und das funktioniert nur dann, wenn das Objekt keine Referenzen als Member enthält, weil die bei der Instanziierung des Objektes initialisiert werden müssen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 06.03.2008 um 11:40 Uhr von 0xdeadbeef editiert. |