In C++ sind Klassenimplementierung und Klassenschnittstelle nicht klar getrennt:
#include "string.h" #include "date.h" class person { string name; // Implementierung date geb; // Implementierung public: person(string, date); // Schnittstelle ... };
auch wenn Änderungen sich auf die (private)
Implementierung beschränken, müssen Anwender der Klasse
neu übersetzt werden.
Abhilfe ist möglich über Zeiger auf die Implementierung:
// Forward Declarations class string; class date; class personimpl; class person { personimpl *impl; public: person(string, date); // Schnittstelle ... };