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