nam se osvedcilo toto:
class A {
public:
A();
virtual ~A();
void neco();
virtual void necoJineho();
private:
class AImpl *impl;
};
Trik je v tom impl. Struktura je vzdy stejna i kdyz pridavas fieldy, metody apod, protoze je vse ulozene v impl, ktery je neznamej (neni v public headeru). virtualni destruktor mimo jine zajisti virtualni tabulku (nezmeni velikost ani pridanim dalsich metod). Jinak pracujes normalne s "new".
Na projektu jsme meli asi 60 DLL knihoven a patche fungovali velmi dobre i kdyz menili velmi podstatne funkcionalitu.