【发布时间】:2015-05-21 09:17:07
【问题描述】:
我需要编写一个复制构造函数,它还传输被复制对象的 unique_ptr 成员的所有权。情况如下:
class C{
// C class stuff
};
class A{
public:
public A();
public A(const A& a);
private:
std::unique_ptr<C> c_;
}
class B{
public:
B(const A& b) : a_(a){}
private:
A a_;
};
我应该如何实现A 的复制构造函数?
【问题讨论】:
-
那么当你复制的时候你想让原件失效?我建议删除复制构造函数并使类只能移动。
-
如果原始对象是指原始对象 A,是的,它应该是“transferref”作为 B 类的成员。您能举个例子吗?
-
@Gabrielecswoosh 花一些时间阅读move-semantics 标签上的问题/答案。
标签: c++ copy-constructor unique-ptr ownership