C++
Weitere undefinierte Verhalten in C ++
Suche…
Einführung
Weitere Beispiele, wie C ++ schief gehen kann.
Fortsetzung von undefiniertem Verhalten
Verweise auf nicht statische Member in Initialisierungslisten
Verweise auf nicht statische Member in Initialisierungslisten, bevor der Konstruktor mit der Ausführung begonnen hat, kann zu undefiniertem Verhalten führen. Dies ergibt sich, da nicht alle Mitglieder zu diesem Zeitpunkt aufgebaut sind. Aus dem Standardentwurf:
§12.7.1: Bei einem Objekt mit einem nicht trivialen Konstruktor führt der Verweis auf ein nicht statisches Member oder eine beliebige Basisklasse des Objekts, bevor der Konstruktor mit der Ausführung beginnt, zu undefiniertem Verhalten.
Beispiel
struct W { int j; };
struct X : public virtual W { };
struct Y {
int *p;
X x;
Y() : p(&x.j) { // undefined, x is not yet constructed
}
};
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow