CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Classes : protected ou private ?

Virtuality
Virtuality
Niveau 8
22 octobre 2005 à 21:12:37

Salut,

voila, me pose depuis un moment une bête question à laquelle je n´ai pu trouver de réponse.
Quel est la différence entre protected et private??

Merci :)

Lapintade
Lapintade
Niveau 30
22 octobre 2005 à 21:15:32

private : il n´y a que la classe qui peut y acceder a ces fonctions ou données.

protected : d´autres classes "speciales" peuvent y acceder, mais je suis pas assez bon en C++ pour dire de memoire lesquels. Allez je tente : les classes "friend" et les classes derivées. J´ai bon ?

gollumkawder
gollumkawder
Niveau 10
22 octobre 2005 à 21:17:58

Oué c´est une derivation qui permet de dire si un membre d´une classe de base est accessible dans une classe dérivée ou non...

Virtuality
Virtuality
Niveau 8
22 octobre 2005 à 21:21:41

Merci pour vos réponses :)

Ce qui m´étonne, c´est que je n´ai jamais vu les deux utilisés par les mêmes personnes.
C´est à dire que dans mon bouquin (le language C++), aucune fois n´est utilisé protected, tandis que dans d´autres programmes trouvés sur le net, seul celui ci est utilisé.

Préférences selon le programmeur?

LGV
LGV
Niveau 28
23 octobre 2005 à 03:35:51

nan, y´a des regles de bon sens pour utiliser ces differents concepts. A partir du moment ou tu connais leur utilisation, tu peux choisir le bon selon les utilisations.

Par ex. si tu fais une interface haut niveau, tu auras surement bcp de membres protected, puisque ta classe est destinee a etre derivee ; et tu conserves des membres prives pour des choses internes qui doivent restees cachees des classes derivees.
tu peux aussi jouer sur les construceur/destructeur/operateur private/protected pour limiter l´utilisation d´une classe, et par la meme gagner en robustesse et garantir sa bonne utilisation.
Bref, c´est treees vague, mais les 3 droits d´acces ont des utilisations bien specifiques. Quant aux friend, ils ont acces a tout, et ca denote en general d´un design de classes mal pense. L´utilisation de classes internes ou de compositions bilaterales permettent generalemente de solutionner proprement ces cas.

Virtuality
Virtuality
Niveau 8
23 octobre 2005 à 09:59:13

C´est cool, merci pour ta réponse :ok:

dnob700
dnob700
Niveau 10
23 octobre 2005 à 13:31:49

tu peut regarder la structure de ma bibliothèque graphique ( http://jvstats.free.fr/temp/advio2.zip ) qui même si ce n´est pas du tout un modèle car il me manquait pas mal de conaissance objet quand je l´ai contruite, montre bien cette idée : j´ai deux classes dont l´une hérite de l´autre. Et la classe mère à quelques membre private destinée à être utilisé par la classe fille.

Pour ce qui est du mot clef friend, je connait un cas ou je pense qu´on ne peut pas s´en passer :
Quand on utilise des fonctions de callback qui doivent utiliserune fonctions propre à la classe, si leur prototype est déjà défini (par windows par exemple) on ne peut pas utiliser de membre d´une clase pour le faire car ceux-ci prennent toujours un premier paramètre (le pointeur this).
Donc si on veut pouvoir toucher à la classe depuis la fonction en question (sans avoir besoin d´écrire des acceseur pour chaque membre qui serait donc visible par tout le monde) le mot clef friend, me semble être la seule solution.

Virtuality
Virtuality
Niveau 8
23 octobre 2005 à 14:33:06

Merci pour le lien, j´y ai jeté un coup d´oeil, j´essaierai d´y préter plus d´attention un peu plus tard.

Sinon il est vrai que pour le moment j´ai pas bcp programmé en objet, et je n´ai pas trop utilisé friend (il y a déjà tellement de truc lol).
Mais ça viendra sans plus tarder :)

Merci encore !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware