Variáveis privadas são uma maneira de ocultar detalhes de complexidade e implementação para o usuário de uma classe. Este é um recurso bastante interessante. Mas eu não entendo porque no c ++ precisamos colocá-los no cabeçalho de uma classe. Vejo duas desvantagens irritantes para isso:
- Desordena o cabeçalho do usuário
- Força a recompilação de todas as bibliotecas clientes sempre que os internos são modificados
Existe uma razão conceitual por trás desse requisito? É apenas para facilitar o trabalho do compilador?
struct foo{};
) não é permitido, mas declarações avançadas ( struct foo;
) são.