gpt4 book ai didi

c++ - 智能指针问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:18 25 4
gpt4 key购买 nike

我正在用智能指针重写我的代码。我有这样的情况:

void Foo(SomeClass *p) { }
boost::shared_ptr<SomeClass> p(new SomeClass);

现在该怎么做:从包​​装器(p.get())传递原始指针或重写函数参数并直接传递智能指针,如:

void Foo(boost::shared_ptr<Foo> obj) { }

我不确定。据我了解智能指针应该遵循一些指针并查看它是否仍然需要在程序中。所以我们可以传递原始指针。

最佳答案

除非 Foo 需要获取(共享)*p 的所有权,否则您应该保持签名不变,只需传递 p.get()。这是最简单、最灵活的选项,并且对现有代码的更改最少。

关于c++ - 智能指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554869/

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