Juste pour �tre s�r, la seule et unique diff�rence entre struct et class est que, par d�faut, les membres sont "public" dans struct et "private" dans class. Correct ?
Version imprimable
Juste pour �tre s�r, la seule et unique diff�rence entre struct et class est que, par d�faut, les membres sont "public" dans struct et "private" dans class. Correct ?
Correct! ;)
et l'h�ritage par d�faut qui est publique avec les struct et priv� avec les class
C'est valable tant que tu programmes en vrai C++.
En .Net, c'est plus compliqu�.
Y'as pas une diff�rence au niveau de la copie par hasard en .NET ?
Genre structA=structB n'est pas trait� de la m�me mani�re que ClassA=ClassB ?
C'est �a. Le terme "structure" en .Net (Structure en VB, struct en C#, value class ou value struct en C++/CLI) d�signe un type valeur, qui:
- Est forc�ment POD (constructeur par d�faut et constructeur de copie sont forc�ment ceux g�n�r�s par le compilo, pas de destructeur), et donc blittable
- Peut contenir des r�f�rences, par contre
- Est allou� directement "sur place" dans la pile ou dans un autre type, plut�t qu'ind�pendamment sur le tas (sauf boxing)
- Est compl�tement clon� par l'op�rateur =
- Est le plus souvent immuable (mais assignable). On peut faire un type valeur avec des modifieurs, mais �a n'est pas conseill�.
En C++ la seul diff�rence entre une class et une struct est :
La structure n'a pas les notions de private et de protected, d'o� le fait que �a soit par d�faut en public.