使用Classname(const Classname&);构造函数在C ++中开发?

时间:2018-04-11 07:58:14

标签: c++ operator-overloading const copy-constructor constructor-overloading

我不知道它叫什么,所以我会显示代码......也许它与构造函数重载有关:

class Classname{
public:
      Classname(Class1& pClass1,Class2& pClass2);
private:
      Classname(const Classname&);
      void operator=(const Classname&);
};

私人部分的2个陈述是做什么的?

1 个答案:

答案 0 :(得分:1)

将'复制构造函数'和'复制分配运算符'置于私有中只是一种禁止使用的方法,因为它们会在外部使用时引发错误类。

如果你真的想禁止他们使用,我建议你这样做:

class Classname
{
public:
      Classname(Class1& pClass1,Class2& pClass2);
      Classname(const Classname&) = delete;
      void operator=(const Classname&) = delete;
private:
      ...
};