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 :

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;
      };
};
Et voici 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;
}
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 ?

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 :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
union
{
    int a;
    int b;
}
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.

Merci