C++
Comportements plus indéfinis en C ++
Recherche…
Introduction
Plus d'exemples sur la manière dont C ++ peut mal tourner.
Suite du comportement indéfini
Se référant à des membres non statiques dans les listes d'initialisation
Se référer à des membres non statiques dans les listes d'initialisation avant que le constructeur ne commence à s'exécuter peut entraîner un comportement indéfini. Cela résulte du fait que tous les membres ne sont pas construits à ce moment. A partir du brouillon standard:
§12.7.1: Pour un objet avec un constructeur non trivial, le fait de se référer à un membre ou à une classe de base non statique de l'objet avant que le constructeur ne commence l'exécution entraîne un comportement indéfini.
Exemple
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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow