ponteiros inteligentes + “isso” considerado prejudicial?
Em um projeto C ++ que usa ponteiros inteligentes, comoboost::shared_ptr
, qual é uma boa filosofia de design em relação ao uso de "this
"?
Considere isso:
É perigoso armazenar o ponteiro bruto contido em qualquer ponteiro inteligente para uso posterior. Você desistiu do controle da exclusão de objetos e confia no ponteiro inteligente para fazê-lo no momento certo.
Membros de classe não estáticos usam intrinsecamente umthis
ponteiro. É um ponteiro bruto e não pode ser alterado.
Se eu alguma vez guardarthis
em outra variável ou passá-lo para outra função que poderia armazená-lo posteriormente ou vinculá-lo em um retorno de chamada, estou criando bugs que são introduzidos quando alguém decide fazer um ponteiro compartilhado para minha classe.
Dado que, quando é que é apropriado usar explicitamente umthis
ponteiro? Existem paradigmas de design que podem evitar bugs relacionados a isso?