Evite utilizar un miembro de referencia tanto como sea posible.
Las mismas diferencias que el de las referencias y punteros se aplican aquí,
Si usted tiene un miembro de referencia, entonces debe ser inicializado en el momento de la creación del objeto de clase no se puede tener una inicialización lenta como en el caso de miembro del puntero porque las referencias no pueden ser NULL y no pueden volverse a colocar, mientras que un miembro del puntero puede hacer que apunte a una instancia de C2
de forma perezosa cuando sea necesario.
Además, tenga en cuenta que hay otros efectos secundarios, así, una vez que un miembro de referencia que el compilador no generará el operador de asignación de copia (=
) & Usted tendrá que proporcionar uno usted mismo, Es cubersome para determinar qué acción su operador =
tomará en tal caso.
a efectos prácticos (a menos que esté realmente interesado del uso de memoria alta debido al tamaño C2) sólo la celebración de una instancia de C2
como miembro del C1
debería ser suficiente, en lugar de puntero o miembro de referencia, que le ahorra un montón de preocupándose por otros problemas que los miembros de referencia/puntero traen consigo a expensas del uso de memoria adicional.
Si debe, utilice un puntero, asegúrese de utilizar un puntero inteligente en lugar de un puntero sin formato, que haría su vida mucho más fácil con los punteros.
Pregunta similar http://stackoverflow.com/questions/892133/should-i-prefer-pointers-or-references-in-member-data –