【发布时间】:2020-04-05 15:50:11
【问题描述】:
是否可以在类的复制构造函数中添加一个异常,这样就不会复制类中包含的每个变量?例如,我希望班级的每个对象都有自己的 ID。
【问题讨论】:
-
是什么阻止您定义自己的复制构造函数?在这种情况下,它会做任何你想做的事情。
-
我宁愿将 ID 放在具有该行为的单独类中。更容易维护
标签: c++ class object constructor copy
是否可以在类的复制构造函数中添加一个异常,这样就不会复制类中包含的每个变量?例如,我希望班级的每个对象都有自己的 ID。
【问题讨论】:
标签: c++ class object constructor copy
复制构造函数在以下场景中被调用:
是的,可以为类的复制构造函数添加异常,这样就不会复制类中包含的每个变量。只需为您需要的实例创建参数化构造函数,
代码:
class A
{
public:
int x;
A(int a) // parameterized constructor.
{
x=a;
}
A(A &i) // copy constructor
{
x = i.x;
}
};
int main()
{
A a1(20); // Calling the parameterized constructor.
A a2(a1); // Calling the copy constructor.
cout<<a2.x;
return 0;
}
【讨论】: