No creo que uno realmente en sentido estricto alguna vez borre incluso los punteros. Lo que elimina son objetos dinámicamente asignados (o matrices de objetos) para los que el puntero es un identificador. Si el objeto se origina de una llamada al nuevo y es la responsabilidad de esta clase limpiar después de este objeto, entonces llame al borre.
es técnicamente posible que una referencia puede estar refiriéndose a un objeto asignado dinámicamente:
int main()
{
//in principle a reference can also refer to a dynamically allocated object
x var(*new someRef);
}
//and if that is the intended usage:
x::~x()
{
delete &m_ref;
}
Sin embargo, esto sería muy mal estilo. Por convención, el identificador "propietario" de un objeto dinámicamente asignado no debe ser una referencia.
ese trozo de código incluso no compilar –
En caso de duda, eche un vistazo a shared_ptr [1], que se hará cargo de todas sus referencias y punteros para usted. [1] http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/shared_ptr.htm – Gianni