C++
Meer ongedefinieerd gedrag in C ++
Zoeken…
Invoering
Meer voorbeelden over hoe C ++ fout kan gaan.
Voortzetting van ongedefinieerd gedrag
Verwijzend naar niet-statische leden in initialisatielijsten
Verwijzen naar niet-statische leden in initialisatielijsten voordat de constructor is begonnen met uitvoeren, kan leiden tot ongedefinieerd gedrag. Dit komt omdat niet alle leden op dit moment zijn gebouwd. Uit het standaardontwerp:
§12.7.1: Voor een object met een niet-triviale constructor leidt verwijzing naar een niet-statisch lid of basisklasse van het object voordat de constructor met de uitvoering begint, tot ongedefinieerd gedrag.
Voorbeeld
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow