Le variabili private sono un modo per nascondere la complessità e i dettagli di implementazione all'utente di una classe. Questa è una caratteristica piuttosto interessante. Ma non capisco perché in c ++ dobbiamo metterli nell'intestazione di una classe. Vedo due inconvenienti fastidiosi di questo:
- Raggruppa l'intestazione dall'utente
- Forza la ricompilazione di tutte le librerie client ogni volta che gli interni vengono modificati
C'è una ragione concettuale dietro questo requisito? È solo per facilitare il lavoro fuori dal compilatore?
struct foo{};
) non è consentito, ma le dichiarazioni forward ( struct foo;
) lo sono.