class Base : public enable_shared_from_this<Base>
{
..
boost::shared_ptr<Base> ReturnMyself()
{
return shared_from_this();
}
};
이런식으로 자신의 shared_ptr형을 반환할 수 있지 않습니까?
Base를 상속받는 Derived클래스내의 함수내에서
void Derived::SomeFunc()
{
boost::shared_ptr<Derived> derived_ptr;
derived_ptr = ReturnMyself();
..
..
};
여기서 ReturnMyself()를 통해서 반환되는 형식이 당연하지만 shared_ptr<Base>가 아닙니까?
shared_ptr<Derived>형식을 받을려고 여러모로 시도해봤지만 안됩니다
쉽게 말해서 Base를 상속받는 클래스에서 ReturnMyself를 호출하면 부모의 shared_ptr가 반환되는 것이 아니고, 자기 자신의 형식으로 반환되게 하고 싶습니다
좋은 방법 없을까요?
enable_shared_from_this
Moderator: 류광