Las variables privadas son una forma de ocultar la complejidad y los detalles de implementación para el usuario de una clase. Esta es una característica bastante agradable. Pero no entiendo por qué en c ++ necesitamos ponerlos en el encabezado de una clase. Veo dos inconvenientes molestos para esto:
- Abarrota el encabezado del usuario
- Obliga a recompilar todas las bibliotecas de clientes cada vez que se modifican los componentes internos.
¿Hay alguna razón conceptual detrás de este requisito? ¿Es solo para facilitar el trabajo del compilador?
struct foo{};
) no está permitido, pero las declaraciones directas ( struct foo;
) sí.