C'est un exemple simplifié pour illustrer la question:
class A {};
class B
{
B(A& a) : a(a) {}
A& a;
};
class C
{
C() : b(a) {}
A a;
B b;
};
Donc B est responsable de la mise à jour d'une partie de C. j'ai couru le code par le biais de la charpie et il whinged sur le membre de référence: peluches#1725. Cela parle de prendre soin de plus de copie par défaut et les affectations qui est assez juste, mais par défaut de copie et de cession est également mal avec les pointeurs, donc il y a peu d'avantages.
J'essaie toujours d'utiliser des références où je peux depuis nu pointeurs introduire uncertaintly savoir qui est responsable de la suppression de ce pointeur. Je préfère incorporer des objets par valeur, mais si j'ai besoin d'un pointeur, j'utilise auto_ptr dans les données membres de la classe qui détient le pointeur, et de passer de l'objet autour de lui comme une référence.
J'ai généralement l'utilisation d'un pointeur sur membre des données lorsque le pointeur peut être null ou pourraient changer. Existe-il d'autres raisons de préférer les pointeurs sur les références pour les données membres?
Est-il vrai de dire qu'un objet contenant une référence ne doivent pas être cédés, depuis une référence ne doit pas être modifié une fois initialisé?