Bonsoir,
J'ai � utiliser un union dans une classe afin d'�viter � avoir deux classes diff�rentes. Toutefois, je vous demande juste une petite confirmation.
Imaginons la classe suivante :
Et voici le constructeur de copie :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class A { public: A () // Constructeur { } private: int nimporteQuelleDonnee; union { int cas1; int cas2; }; };
En gros, je voudrais savoir si, lorsque je copie par exemple un objet A utilisant le cas2, si dans ce cas l� le nouvel objet aura bien la m�me valeur dans cas2, malgr� le fait que ce soit cas1 = a.cas1 que j'appelle dans le constructeur de copie ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 A (const A & a) { nimporteQuelleDonnee = a.nimporteQuelleDonnee; // Pas de problème ici cas1 = a.cas1; }
Je suis quasiment s�r que �a ne pose pas de probl�me �tant donn� qu'il me semble que la m�moire est partag� dans un union, donc si j'ai :
Si j'�cris a = 5, et que j'�cirs std::cout << b, �a m'affichera quand m�me 5. Mais c'est juste pour �tre sur � 100% :p.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 union { int a; int b; }
Merci![]()
Partager