gpt4 book ai didi

c++ - 避免 shared_ptr 重定向

转载 作者:行者123 更新时间:2023-11-28 03:40:16 25 4
gpt4 key购买 nike

我将共享指针和对共享对象的引用存储在包装器中。有没有人看到内存泄漏的可能性?只是谨慎...

class B;
class A
{
public :
typedef shared_ptr< B > PB;
A( PB pb ) :
m_pb( pb ),
m_b( *pb )
{ }

void someFunc()
{
// do something with m_b
}

PB getB()
{
return m_pb;
}
// in particular, no function returns a ref to B

private :
PB m_pb;
B &m_b;

};

最佳答案

我看不出有什么问题,只要两个成员具有相同的范围。但是一般规则不建议使用指向存储在 shared_pointer 中的对象的引用或裸指针,只要对象的生命周期由共享指针管理,你就没有机会让事情脱离你的控制。

附言在评论中,KennyTM 讲述了首先检查 NULL 指针。

关于c++ - 避免 shared_ptr 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502333/

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