Data una classe "A" esiste ed è corretta. Quali sarebbero alcuni dei risultati negativi dell'utilizzo di un riferimento a "A" anziché a un puntatore in una classe "B". Cioè:Quali sono alcuni degli svantaggi dell'utilizzo di un riferimento anziché di un puntatore?
// In Declaration File
class A;
class B
{
public:
B();
~B();
private:
A& a;
};
// In Definition File
B::B(): a(* new A())
{}
B::~B()
{
delete &a;
}
codice extra Omesso per ulteriori correttezza della "B", come ad esempio la copia costruttore e operatore di assegnamento, voleva solo dimostrare il concetto della questione.
Interessante. Non ho mai visto un codice del genere prima d'ora. Può essere, questo è solo un modo per evitare il dereferenziamento e l'uso di '->' e comunque rendere 'a' assegnato dinamicamente, per qualche motivo:? +1 per la domanda. –
Qual è il punto di questo, invece di solo "A a;'? Non sarebbe meglio di entrambi i riferimenti o puntatori? – tenfour
@tenfour in molti casi, ma è un esempio semplificato - supponiamo che il valore di "a" sia creato da una fabbrica. – justin