C++ 11 Shared Ptr,共享相同的引用计数器

Gam*_*per 0 c++ reference-counting shared-ptr c++11

是否可以有2个不同的对象共享相同的参考计数器?

说我有

shared_ptr<Foo> myFoo;
shared_ptr<Bar> myBar;
Run Code Online (Sandbox Code Playgroud)

我希望两个对象都存活,直到有一个对Foo或Bar的引用(所以可能没有人引用Bar,但是因为引用Foo都不会被删除).

Pup*_*ppy 7

将它们放在一个结构中并拥有shared_ptr自己的结构.

struct FooBar {
    Foo f;
    Bar b;
};
shared_ptr<FooBar> myFooBar;
Run Code Online (Sandbox Code Playgroud)

  • 从那里你可以使用shared_ptr [来自外太空的ctor 8](http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr)将shared_ptrs送到各个部分,如果真的有必要的话. (4认同)