0
구성원 함수 내에서 shared_ptr
을 소유하게하려면 좋은 C++ 디자인 패턴이 무엇입니까?shared_ptr 함수 내에서 객체를 소유하기위한 패턴
내 기능에는 shared_ptr
~ this
을 저장하고 나중에 검색해야합니다. 다른 범위에서. 내가
shared_ptr<Foo> foo(new Foo());
shared_ptr<Bar> bar(new Bar());
foo->doSomething(bar);
을 할 경우 지금
void Foo::doSomething(shared_ptr<Bar> bar)
{
bar->setFoo(make_shared<Foo>(this));
}
void Bar::setFoo(shared_ptr<Foo> foo)
{
myFoo.reset(foo);
}
을 bar->myFoo
이 여전히 유효한 경우 나중에 알 수있는 방법이 없습니다 :이 순진한 접근 방식은 작동하지 않습니다.
문제는 동일한 Foo
인스턴스에 두 번째 shared_ptr
을 생성한다는 것입니다. 그러나 this
만 있기 때문에 함수 내에서 shared_ptr
에 액세스 할 수있는 방법은 없습니다.