11

それを持っているオブジェクトへの参照を取得する方法はshared_ptr<T>? (単純なクラスの場合T)

4

2 に答える 2

14

operator*既に参照を返します:

T& ref = *ptr;

または、もっと意味のある例を挙げることができると思います。

void doSomething(std::vector<int>& v)
{
    v.push_back(3);
}

auto p = std::make_shared<std::vector<int>>();

//This:
doSomething(*p);

//Is just as valid as this:
vector<int> v;
doSomething(v);

(ただし、解放されたオブジェクトを参照する参照を使用することはもちろん無効であることに注意してください。オブジェクトへの参照を保持しても、shared_ptr インスタンスを保持するのと同じ効果はありません。shared_ptr インスタンスのカウントが 0 になった場合、オブジェクトは参照している参照の数に関係なく解放されます。)

于 2012-11-27T00:58:42.377 に答える