C++ (Qt)void Bar::setResource( MyResource *res ){ m_res = res; connect( m_res, QObject::destroyed, [&]( QObject * ){ m_res = nullptr; } );}
#include <iostream>#include <memory>struct data { int val = 333;};std::shared_ptr<data> holder = std::make_shared<data>(); int main(){ std::weak_ptr<data> weak = holder; // так нельзя // std::cout << "value = " << weak->val << '\n'; // нужно сначала расшарить ресурс: std::shared_ptr<data> owner = weak.lock(); std::cout << "value = " << owner->val << '\n';}
auto* weak1 = smart.get();auto* weak2 = smart.get();auto* weak3 = smart.get();
Голые указатели = плохо. Давайте сделаем все указатели вумными! И будет счастье!
auto* weak = unique.get();