tma*_*ric 4 c++ constructor copy-constructor
我正在一个开源库中编程,它在代码中只有很少的注释,并且绝对没有代码相关的文档,或者这些注释完全没有显示或者完全令人困惑.库的示例类有时定义如下(这是一个抽象的简短示例):
class A
{
private:
// Disallow default bitwise copy construct.
A (const A& Acopy) { data = Acopy.data; };
int data;
public:
A() {};
A (int arg) : data(arg) {};
A(const A& Acopy) { data = Acopy.data; };
};
Run Code Online (Sandbox Code Playgroud)
私有拷贝构造函数前面的注释"Dissalow default bitwise copy construct" 会指出这样一个事实:当我定义一个类型时,我需要定义自己的拷贝构造函数,以避免编译器模糊地为我"生成"一个.这是我到目前为止在这个主题上学到的.但在这种情况下,构造函数是私有的,并且编译以这种形式中断.
问:这样的事情有原因吗?私有的复制构造函数?这个评论意味着什么?
托米斯拉夫
这几乎意味着你所说的.通常,编译器会生成一个复制构造函数.为了防止这种情况,您可以定义自己的,并将其设为私有.然后,任何复制构造类的尝试都将在编译时失败,而不是默默地做错事.