Ciao a tutti, ho una domanda un po' teorica. Sto usando il C++, ma riguarda più che altro il design della classe in sè...
In pratica, ho un progetto dove uso le SDL. Dato che devo disegnare sullo schermo, ho pensato bene di creare una classe che incapsuli le funzioni dello schermo.
Questa classe Screen contiene un puntatore SDL_Surface, che è la superficie su cui il programma viene disegnato, e un po' di variabili associate (altezza, larghezza...).
Il problema è che l'operazione di disegno modifica questa superficie. Alle funzioni di disegno io devo però passare un SDL_Surface*, che poi verrà modificato, e non posso passarlo come costante.
In pratica, perchè le cose funzionino questo membro deve essere pubblico.
In realtà ho fatto così:
Ma la sostanza non cambia: è vero che non è possibile modificare direttamente il puntatore contenuto nella classe, ma è comunque possibile modificare la superficie gestita senza passare dai metodi della classe.codice:SDL_Surface* Screen::surface(void) { return surf; //restituisce il puntatore gestito dalla classe }
Secondo voi, quale può essere il metodo migliore per gestire un caso simile?