gpt4 book ai didi

c++ - std::shared_ptr 是否有复制构造函数?

转载 作者:太空狗 更新时间:2023-10-29 20:53:38 25 4
gpt4 key购买 nike

我正在学习 std::shared_ptr
我阅读了有关 shared_ptr 的构造函数的文档,以找到它的复制构造函数。

我可以找到一个构造函数,

shared_ptr( const shared_ptr& r );

但它似乎不是我期望的简单复制构造函数,

shared_ptr( shared_ptr& r );

而且它似乎不共享引用计数器。

为什么 shared_ptr 没有简单的复制构造函数?

以防万一,我把我真正想做的写在下面,

class A {
public:
A(shared_ptr<X>& sptr) : sptr_(sptr) {}
private:
shared_ptr<X> sptr_;
};

最佳答案

Why shared_ptr does not have a simple copy constructor?

标准说:

A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const volatile X&, [...]

没有什么简单的复制构造函数std::shared_ptr 有一个完全有效的复制构造函数。它构造一个 std::shared_ptr 对象,该对象与给定对象共享所有权(如果有效)。

关于c++ - std::shared_ptr<X> 是否有复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42130940/

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