Durante l'apprendimento del C++, mi è stato detto che se si desidera che più classi facciano riferimento allo stesso oggetto, è necessario fornire un puntatore all'oggetto. In Modern C++, probabilmente interpreterei questo come l'oggetto essendo un unique_ptr e le classi che contengono puntatori non-own-raw.Devo memorizzare i riferimenti nelle classi in C++?
Recentemente, il mio mentore al lavoro ha suggerito di utilizzare solo i puntatori quando si prevede di avere il punto di archiviazione su un oggetto diverso o null a un certo punto. Invece, dovresti memorizzare i riferimenti nelle classi.
Le variabili membro di riferimento sono una cosa che non ho mai visto prima, quindi cercavo consigli su quali fossero le preoccupazioni ... Ha senso ... Stai dicendo che questo riferimento non è mai considerato null ... Immagino che la preoccupazione sarebbe allora che non si potesse/check/per null. Dovrebbe essere un invariante della tua classe ...
Che ne dici di come questo si applica all'uso dei riferimenti per il polimorfismo?
Update: La risposta che ho selezionato copre le mie domande abbastanza bene, ma ho pensato di chiarire per i lettori futuri. Quello che stavo veramente cercando era un'idea delle conseguenze dell'uso di un riferimento piuttosto che di un puntatore come membro della classe. Mi rendo conto che il modo in cui la domanda è stata formulata ha fatto sembrare più che stavo cercando opinioni sull'idea.
Sì, Non è possibile controllare per nulla, ma il riferimento può anche non essere nulla (a meno che non si tenta vero duro per essere). Una cosa a cui devi pensare è che i dati di riferimento-i membri devono essere inizializzati dal costruttore della classe. Hai una domanda più concreta? –
Dovresti essere più concreto, questa domanda è molto aperta. Direi che quello che dice il tuo mentore ha molto senso, se non hai intenzione di cambiare dove "puntatore/riferimento" punta/si riferisce, dovresti usare i riferimenti. In questo modo si ottengono problemi null in fase di compilazione. – perencia
I usano generalmente membro T e di esprimere un rapporto permanente per la durata di questo * * oggetto e l'uso T * quando il cui scopo è variabile/annullabile. – Galik