Par exemple, j'ai une classe de carte qui a quelques membres : sizeX, sizeY, vecteur de tuiles, nom, etc.
Il existe deux approches de base pour gérer les variables auxquelles on accède de l'extérieur :
- encapsulation, mais cela ajoute beaucoup de code et plus de typage (fonctions constantes setX() et getX())
- avoir les variables auxquelles on accède souvent de l'extérieur en tant que membres publics, ce qui facilite les choses.
Je n'aime ni l'un ni l'autre. J'ai eu une idée : un membre de la classe, qui de l'extérieur agit comme const (donc vous pouvez y accéder facilement object.member mais c'est sûr) et à l'intérieur de la classe il est non-const. Cependant, pour autant que je sache, le c++ n'a pas cette possibilité. La seule solution (laide) que je connaisse est d'avoir tout ce qui est const et d'utiliser const cast à l'intérieur des fonctions de la classe.
Existe-t-il une meilleure approche en C++ 11 ? Existe-t-il un mot-clé pour cela ?