dragneel ha scritto:
Vorrei chiedere parere per alcune "finezze". Sono cose che ho già fatto, ma che vorrei sapere se vanno bene o ci sono modi migliori per farle.
- Io ho una classe per la grafica, e all'interno ho un puntatore ad un oggetto di una classe logica. Per la classe logica mi conviene rendere i vari campi pubblici oppure mettere private+il friend?
Solitamente la classe logica è la classe principale e le classi grafiche sono subordinate, nel senso che le classi logiche sono quelle che risolvono il tuo problema, sono in genere portabili e la loro interfaccia pubblica e determinata dal problema. Le classi grafiche fanno da ponte tra l' utente e le classi logiche e sono specifiche per un certo ambiente.
Mettere nella classe logica il friend ad una classe grafica significa creare un legame troppo stretto, sarebbe da evitare, il discorso però è complesso, se ancora non l' hai fatto ti consiglio di guardarti i Design Patterns.
dragneel ha scritto:
Se ho una classe con un sacco di puntatori, nel distruttore della classe devo mettere per forza tutti i vari delete per liberare memoria?
Altre cose le metterò appena mi verranno in mente
Una classe che ha un sacco di puntatori solitamente è perchè usa le classi in maniera polimorfa (ha puntatori a classi base a cui vengono assegante classi derivate), oppure condivide un oggetto con altre classi, se così non fosse segui il consiglio di skynet e riduci il numero di puntatori.
Nel caso di oggetti condivisi da più classi è imortante stabilire quale classe è il proprietario dell' oggetto, ovvero chi è incaricato di distruggerlo, la cosa è delicata ed anche in questo caso la conoscenza dei Design Patterns è utile.
Comunque la risposta è si, devi mettere tutti i delete per liberare la memoria (a meno che già lo faccia qualche altra classe).