gpt4 book ai didi

c++ - 将 'this' 转换为 std::shared_ptr

转载 作者:可可西里 更新时间:2023-11-01 16:26:34 46 4
gpt4 key购买 nike

我在类上有一个方法可以使特定实例成为“事件”实例:

void makeActive() { activeInstance = this; }

但是自activeInstance 起它就不起作用了。类型为 std::shared_ptr< ClassName > .我怎么投 thisstd::shared_ptr<ClassName>

最佳答案

如果您的对象已经被一个shared_ptr拥有,您可以通过让您的对象继承自std::enable_shared_from_this来生成另一个shared_ptr

此代码将起作用:

void makeActive() { activeInstance = shared_from_this(); }

如果你的对象还没有被shared_ptr拥有,那么你肯定不想在makeActive()中创建一个> 因为 shared_ptr 将在最后一个对象被销毁时尝试删除您的对象。

关于c++ - 将 'this' 转换为 std::shared_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894246/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com