Est-il possible d'avoir des membres de données publics dans une classe/structure C++ dans certaines situations particulières ? Comment cela s'accorde-t-il avec l'héritage ? J'ai lu des avis sur la question, certains déjà exprimés ici.
http://stackoverflow.com/questions/952907/practices-on-when-to-implement-accessors-on-private-member-variables-rather-than http://stackoverflow.com/questions/670958/accessors-vs-public-members
ou dans des livres/articles (Stroustrup, Meyers) mais je suis encore un peu dans l'ombre.
J'ai quelques blocs de configuration que je lis à partir d'un fichier (entiers, bools, floats) et j'ai besoin de les placer dans une structure pour une utilisation ultérieure. Je ne veux pas les exposer à l'extérieur, mais simplement les utiliser dans une autre classe (je veux en fait passer ces paramètres de configuration à une autre classe, mais je ne veux pas les exposer via une API publique).
Le fait est que j'ai beaucoup de paramètres de configuration de ce type (une quinzaine) et que l'écriture de getters et setters semble être une surcharge inutile. De plus, j'ai plus d'un bloc de configuration et ceux-ci partagent certains des paramètres. Faire une structure avec tous les membres de données publiques et ensuite sous-classer ne semble pas correct. Quelle est la meilleure façon d'aborder cette situation ? La création d'une grande structure pour couvrir tous les paramètres constitue-t-elle un compromis acceptable (je devrais laisser certains de ces paramètres définis) ? devrais laisser certains de ces paramètres à leur valeur par défaut pour les blocs qui ne les utilisent pas) ?