В проекте С++, который использует интеллектуальные указатели, например boost::shared_ptr
, что является хорошей философией дизайна относительно использования this
"
Рассмотрим, что:
-
Опасно хранить исходный указатель, содержащийся в любом умном указателе для последующего использования. Вы отказались от контроля удаления объекта и доверяете умному указателю, чтобы сделать это в нужное время.
-
Нестатические члены класса по существу используют указатель
this
. Это необработанный указатель, который не может быть изменен.
Если я когда-либо сохраняю this
в другой переменной или передаю ее другой функции, которая может потенциально сохранить ее позже или связать ее в обратном вызове, я создаю ошибки, которые появляются, когда кто-то решает сделать общий указатель на мой класс.
Учитывая, что когда мне когда-либо подходит явное использование указателя this
? Существуют ли парадигмы проекта, которые могут предотвратить ошибки, связанные с этим?