这里的类似问题似乎都使用了boost,我没有使用。
我正在尝试做的事情如下所示:
在“所有者”中:
std::shared_ptr<State> m_state;
m_state = make_shared<State>(param);
m_state = m_state->SomeVirtualFunction(); // The original m_state object gets destroyed
在“拥有”中:
std::shared_ptr<State> State::SomeVirtualFunction() {
return std:shared_ptr<State>(this);
}
在 MSVS 2012 的 Visual C++ 中,拥有的对象被销毁。我怎样才能让它活着?