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 ?
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é.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
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 ?
Quand c'est trop, c'est pas bon !
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é.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
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.
"Quand le monde est dangereux, l'humilité est un facteur de longévité." ( Baxter "Evolution" )
Elle a ces notions, c'est juste que par défaut, public s'applique pour une struct.
Est valide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct C { protected: int i; private: int j; };
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager