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

Friend c++

Lepen2027
Lepen2027
Niveau 8
08 mai 2019 à 09:47:59

Salut, si j'ai une classe A et que je veux que cette classe A soit construsible et destruisible uniquement par une classe B, ce qui revient a foutre les constructeurs et destructeurs private, et bien ma seule solution est de dire que A est amie de B, ce qui permet en même temps de "break" lencapsulation mais aussi de la renforcer enormement, mais je voulais savoir pourquoi les gens disent que ce mot clef est mal ? Merci

godrik
godrik
Niveau 30
08 mai 2019 à 16:28:22

mais je voulais savoir pourquoi les gens disent que ce mot clef est mal ?

Les gens qui disent ca n'ont pas compris l'utilite du mot cle. J'imagine qu'il voit friend comme un moyen de casser les abstractions et encapsulation qui sont considere de bonne pratique en programmation objet. Si tu utilises friend parceque, a ce truc est private et ca me fait chier, donc je vais mettre un friend, alors je suis d'accord c'est une mauvaise utilisation.

friend est vraiment dans le langage pour permettre de contourner les abstractions dans des cas ponctuel ou ca a vraiment du sens. Le cas que tu presentes est convaincant pour moi. Tu veux une fonction qui ne soit appellable que d'un seul objet en particulier, c'est exactement a ca que friend sert.

Typiquement friend en C++ sert la ou en java on utiliserait l'absence d'attribut de visibilite (ce qui rends la fonction ou la variable accessible par n'importe quelle objet du meme package). En d'autre terme, ca note clairement que les deux classes sont inter dependente dans leurs implementation. Personnellement, je ne vois pas ca comme un probleme tant qu'on ne s'en sert pas n'importe comment.

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