C++
Więcej niezdefiniowanych zachowań w C ++
Szukaj…
Wprowadzenie
Więcej przykładów tego, jak C ++ może się nie udać.
Kontynuacja od niezdefiniowanego zachowania
Odwoływanie się do elementów niestatycznych na listach inicjalizujących
Odwołanie się do elementów niestatycznych na listach inicjalizujących przed uruchomieniem konstruktora może spowodować niezdefiniowane zachowanie. Wynika to z faktu, że obecnie nie wszyscy członkowie są konstruowani. Ze standardowego projektu:
§12.7.1: W przypadku obiektu z nietrywialnym konstruktorem odwołanie się do dowolnego niestatycznego elementu lub klasy podstawowej obiektu przed rozpoczęciem wykonywania przez konstruktora powoduje niezdefiniowane zachowanie.
Przykład
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow