gpt4 book ai didi

c++ - 共享指针和 const 正确性

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

将类的const 正确性 扩展到其指定成员的正确方法是什么?在示例代码中,get 方法的常量版本是否会创建一个 std::shared_ptr,其引用计数器与内部成员 m_b 相同,还是它重新从 0 开始计数?

class A
{
std::shared_ptr< B > m_b;

public:

std::shared_ptr< const B > get_b( ) const
{
return m_b;
}

std::shared_ptr< B > get_b( )
{
return m_b;
}
}

最佳答案

shared_ptr当您从另一个 shared_ptr 构造时,将始终保留引用计数; 不安全 使用它的唯一方法是从原始指针构造:shared_ptr<...>(my_ptr.get()) // don't do this .

您可能还对 propagate_const 感兴趣包装器,它位于 Library Fundamentals TS v2 中,因此可能很快就会在您的实现中可用。

关于c++ - 共享指针和 const 正确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36130413/

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