Les variables privées sont un moyen de masquer la complexité et les détails d'implémentation à l'utilisateur d'une classe. C'est une fonctionnalité plutôt intéressante. Mais je ne comprends pas pourquoi en c ++ nous devons les mettre dans l’en-tête d’une classe. Je vois deux inconvénients ennuyeux à ceci:
- Il encombre l'en-tête de l'utilisateur
- Il force la recompilation de toutes les bibliothèques clientes chaque fois que les internes sont modifiés
Y a-t-il une raison conceptuelle derrière cette exigence? Est-ce seulement pour faciliter le travail du compilateur?
struct foo{};
) n'est pas autorisée, mais les déclarations forward ( struct foo;
) le sont.