【问题标题】:Exception in C++ copy constructor [closed]C ++复制构造函数中的异常[关闭]
【发布时间】:2020-04-05 15:50:11
【问题描述】:

是否可以在类的复制构造函数中添加一个异常,这样就不会复制类中包含的每个变量?例如,我希望班级的每个对象都有自己的 ID。

【问题讨论】:

  • 是什么阻止您定义自己的复制构造函数?在这种情况下,它会做任何你想做的事情。
  • 我宁愿将 ID 放在具有该行为的单独类中。更容易维护

标签: c++ class object constructor copy


【解决方案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;  
}

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2019-03-11
    相关资源
    最近更新 更多