C ++复制构造函数中的异常[关闭]
Posted
技术标签:
【中文标题】C ++复制构造函数中的异常[关闭]【英文标题】:Exception in C++ copy constructor [closed] 【发布时间】:2020-04-05 15:50:11 【问题描述】:是否可以在类的复制构造函数中添加一个异常,这样就不会复制类中包含的每个变量?例如,我希望班级的每个对象都有自己的 ID。
【问题讨论】:
是什么阻止您定义自己的复制构造函数?在这种情况下,它会做任何你想做的事情。 我宁愿将 ID 放在具有该行为的单独类中。更容易维护 【参考方案1】:复制构造函数在以下场景中被调用:
当我们用另一个现有的对象初始化对象时 相同的班级类型。例如,学生 s1 = s2,其中学生是 类。 当相同类类型的对象作为值传递时 论据。 当函数按值返回相同类类型的对象时。是的,可以为类的复制构造函数添加异常,这样就不会复制类中包含的每个变量。只需为您需要的实例创建参数化构造函数,
代码:
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;
【讨论】:
以上是关于C ++复制构造函数中的异常[关闭]的主要内容,如果未能解决你的问题,请参考以下文章