punteros inteligentes + "esto" considerado perjudicial?
En un proyecto de C ++ que utiliza punteros inteligentes, comoboost::shared_ptr
, ¿cuál es una buena filosofía de diseño con respecto al uso de "this
"?
Considere eso:
Es peligroso almacenar el puntero en bruto contenido en cualquier puntero inteligente para su uso posterior. Has renunciado al control de eliminación de objetos y confías en el puntero inteligente para hacerlo en el momento adecuado.
Los miembros de clase no estáticos utilizan intrínsecamente unthis
puntero. Es un puntero en bruto y eso no se puede cambiar.
Si alguna vez almacenothis
en otra variable o pasarlo a otra función que podría almacenarlo para más tarde o vincularlo en una devolución de llamada, estoy creando errores que se introducen cuando alguien decide hacer un puntero compartido a mi clase.
Dado eso, ¿cuándo es apropiado para mí usar explícitamente unthis
¿puntero? ¿Existen paradigmas de diseño que puedan prevenir errores relacionados con esto?