Ale*_*der 9 c++ shared-ptr c++11
我在类上有一个方法,使特定实例成为"活动"实例:
void makeActive() { activeInstance = this; }
Run Code Online (Sandbox Code Playgroud)
但是,因为activeInstance有类型,它不起作用std::shared_ptr< ClassName >.我怎样才能投this来std::shared_ptr<ClassName>?
Dre*_*ann 22
如果您的对象已经由a 拥有shared_ptr,则可以shared_ptr通过让对象继承来生成另一个对象std::enable_shared_from_this
这段代码将起作用:
void makeActive() { activeInstance = shared_from_this(); }
Run Code Online (Sandbox Code Playgroud)
如果你的对象还没有被a 拥有shared_ptr,那么你确定不想创建一个,makeActive()因为shared_ptr当一个将破坏最后一个对象时,它会尝试删除你的对象.
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |