Bonjour,
J'ai une question.
J'ai fait un classe, toute simple, qui n'est là que pour me simplifier un peu la tâche (c'est le but de la prog vous allez me dire). Voici le code :
La question est : vu que l'attribut 'deleteAll' est tout simple, qu'il n'y a aucune vérification ou opération quand on le modifie que de lui donner la valeur en argument, et aucune restriction pour obtenir sa valeur, est-ce grave si je le rend public ? Histoire de simplifier un peu la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 class DrawableList : public sf::Drawable, public std::vector<sf::Drawable*> { public: DrawableList() : Drawable(), vector<sf::Drawable>(), deleteAll(false) {} DrawableList(delAll) : Drawable(), vector<sf::Drawable>(), deleteAll(delAll) {} ~DrawableList() { if(deleteAll) for(std::size_t i(0) ; i < size() ; i++) delete (*this)[i]; } void setDeleteAll(bool delAll) { deleteAll = delAll; } bool getDeleteAll() { return deleteAll; } private: void draw(sf::RenderTarget& target, sf::RenderStates states) const; // See 'sf::Drawable' in the SFML documentation. bool deleteAll; };
Parce que pour le coup cela n'aurait aucune différence entre faire monInstance.setDeleteAll(true) et monInstance.deleteAll = true. Si ? Je sais que, principe d'encapsulation, tout ça. Mais est-ce grave si je fais cette exception ?
Je suis en fait partagé entre mon côté pratique qui me dit "vas-y, rend-le public, ça ne change rien à part simplifier les choses" et mon côté "bon petit soldat" qui me rappelle que non, les attributs d'une classe doivent toujours être privés.
Merci d'avance pour vos avis.
Partager