Sto cercando di implementare una libreria di finestre in C ++, le circostanze mi stanno costringendo a implementarlo tutto da solo, ma non è questo il punto di questa domanda.
La mia domanda è: cosa dovrebbe essere in una classe PIMPL ? Quali attributi, per essere più precisi. Ad esempio, come ho già affermato, sto implementando una libreria di finestre e ho 2 attributi di tipo:
- Questi, che descrivono la finestra (int Width, char * pTitle ect.)
- E quelli che sono necessari al sistema operativo (HWND, HDC, HGLRC per Windows o XEvent, Display, Window per Linux / X11).
Il mio attuale approccio è che l'implementazione contiene tutti gli attributi, la classe sopra, che ha il PIMPL, chiama i metodi getter e setter dell'implementazione per recuperarne gli attributi.
Qual è l'approccio giusto? Metti tutti in una (PIMPL-) classe o li dividi?