• # à propos des setters/getters

    Posté par . En réponse au message Avantages du C++ sur le C ?. Évalué à 4.

    Et utiliser une fonction pour lire ou écrire chaque variable présente dans une classe, je trouve ça complètement inefficace et ça réduit les performances, car ça fait un appel de fonction au lieu de lire et écrire directement la variable.

    Le but n'est pas de définir une fonction pour chaque élément de ta structure, mais de masquer les détails d'implémentation. Un exemple : une structure ou classe qui a une propriété température. Comment l'implémenter, sachant que l'on peut exprimer une température en kelvin (système international), en degré Celsius ou en Degré Fahrenheit. Si tu donnes directement accès à la propriété, tu vas devoir choisir de définir l'unité d'implémentation, et t'y tenir parce que es gens feront des trucs comme par exemple: temperature_degre = instance_objet.temperature

    Par contre si tu rend ta propriété température privée, mais que tu crées des interfaces qui retournent la température soit en degré celsius, soit en kelvin, soit en degreé Fahrenheit, tu peux te sentir libre de changer du jour au lendemain la façon dont tu va stocker ta température. Les utilisateurs de ton objet n'auront qu'à appeler l'interface, qui leur retournera toujours la même chose. Ils n'auront rien à changer dans leur code (il n'y a que toi qui aura à faire les adaptations).