vla*_*don 0 c++ copy-constructor c++11
空和已删除的副本构造函数的示例:
class A
{
public:
// empty copy constructor
A(const A &) {}
}
class B
{
public:
// deleted copy constructor
A(const A&) = delete;
}
Run Code Online (Sandbox Code Playgroud)
他们是否在实践中做同样的事情(禁止复制对象)?为什么delete比这更好{}?
T.C*_*.C. 11
他们是否在实践中做同样的事情(禁止复制对象)?
否.尝试调用已删除的函数会导致编译时错误.可以调用空复制构造函数,它只是默认初始化类成员而不是进行任何复制.
为什么
delete比这更好{}?
因为你不太可能真正想要一个空的拷贝构造函数提供的奇怪的"复制"语义.