Private Variablen sind eine Möglichkeit, die Komplexität und Implementierungsdetails für den Benutzer einer Klasse zu verbergen. Dies ist ein ziemlich schönes Feature. Aber ich verstehe nicht, warum wir sie in c ++ in den Header einer Klasse schreiben müssen. Ich sehe zwei ärgerliche Nachteile:
- Der Header des Benutzers wird unübersichtlich
- Es erzwingt eine Neukompilierung aller Client-Bibliotheken, wenn die Interna geändert werden
Gibt es einen konzeptionellen Grund für diese Anforderung? Ist es nur, um dem Compiler die Arbeit zu erleichtern?
struct foo{};
) ist nicht erlaubt, forward declarations ( struct foo;
) jedoch.