So qual è la differenza e come funzionano entrambi, ma questa domanda riguarda più lo stile di codifica.Puntatore contro variabile nella classe
Ogni volta che sto codificando faccio molte classi, tutte hanno variabili e alcune di esse sono puntatori e alcune sono variabili normali. Io di solito preferisco le variabili a puntatori se che i membri dura quanto la classe fa, ma poi il mio codice diventa in questo modo:
engine->camera.somevar->x;
// vs
engine->camera->somevar->x;
Non mi piace il puntino nel mezzo. O con variabili private:
foo_.getName();
// vs
foo_->gatName();
Penso che il punto "scompare" in un lungo codice. Trovo che -> sia più facile da leggere in alcuni casi.
La mia domanda sarebbe se si usano puntatori anche se la variabile verrà creata nel costruttore e cancellata nel distruttore? C'è qualche consiglio di stile in questo caso?
P.S. Penso che il punto sia migliore in alcuni casi.
Bene, ma per quanto riguarda i membri rispetto ai puntatori intelligenti (nel codice di implementazione)? – user396672
@ user396672: che dire di loro. Un puntatore intelligente è solo un oggetto come un altro. Il suo compito è gestire un singolo puntatore. –
beh, alcune classi hanno variabili pubbliche e non vedo alcun motivo per renderle private. Creo solo variabili private se il lavoro di classe può essere danneggiato da un uso non valido di esse. Se sono nella classe solo per rendere più gradevole la struttura del programma - perché no? Ad esempio l'esempio con il motore. Quando codifico un gioco (a volte faccio giochi di merda. È molto divertente), creo un "motore" di puntatore esterno perché viene usato da molti altri oggetti. E quel motore di solito contiene cose come la macchina fotografica in ambito pubblico. Lo faccio perché altri oggetti devono accedere alla classe della telecamera e non possono rovinare il motore. – Pijusn