以下方案在创建“Stuff”并将其所有权授予“Foo”的过程中是否合理且有效?
class Foo
{
explicit Foo(const std::shared_ptr<Stuff>& myStuff)
: m_myStuff(myStuff)
{
}
...
private:
const std::shared_ptr<Stuff> m_myStuff;
}
std::shared_ptr<Stuff> foosStuff(new Stuff());
Foo f(foosStuff);
Foo
并没有 获取 所有权。shared_ptr
的目的是 共享 所有权。 - juanchopanzastd::shared_ptr<Stuff> foosStuff(new Stuff());
。 - stefaanv