Ответ 1
Логически такой сценарий для меня не имеет смысла.
Предположим, что на некоторое время можно передать право собственности, но вы можете это сделать только тогда, когда вы уверены, что существует только один shared_ptr
alives; Если это так, то вы можете использовать shared_ptr
как член A
и притворяться, что это unique_ptr
.
И затем вы прокомментировали:
Это правда, я мог бы создать
shared_ptr
в классе A. Я думаю, что я неправильно понял концепцию. Я хотел вести себя так: еслиunique_ptr
умирает, сам объект тоже умирает, хотяshared_ptr
все еще указывает на него, но глупо, поскольку они не знают, что сам объект был уничтожен, и поэтому они не будут " t benullptr
s.
В этом случае вы смотрите на неправильный умный указатель. Вероятно, вам понадобится std::weak_ptr
. Если это так, убедитесь, что вы используете std::shared_ptr
, а все остальные - как std::weak_ptr
.