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 ++复制构造函数中的异常[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

复制构造函数中的c ++用户定义成员

从函数返回对象时调用C ++中的复制构造函数?

C ++中的复制构造函数和=运算符重载:通用函数可能吗?

可克隆层次结构中的C ++副本构造函数和赋值

构造函数中的 C++ 初始化列表

什么是 C++ 中的就地构造函数? [复制]