c++ - 调用复制 ctor 和另一个 ctor

标签 c++ copy-constructor

我在我的代码中定义了一个复制构造函数,它正在初始化正在创建的对象的数据成员。 现在,如果我只需要更改几个变量的值,我正在编写一个新的复制构造函数。 所以我的问题是,我是否可以只初始化特定的不同数据成员,而不是再次编写相同的代码,而对于其他数据成员,我可以只在我的 ctor 方法中调用定义的一个 ctor。

例子: 已经存在

A::A(const A& cpy)
{ 
 a=cpy.a;
 b=cpy.b;
 c=cpy.c
}

现在我想把我的ctor写成

A::A(const A& cpy, bool x)
{
   if( x)
      a=something;
   else
      a =cpy.a
   //call first ctor for other variables (b and c)
}

谢谢 茹琪

最佳答案

从 C++11 开始你可以这样做:

class A 
{
    public:

          A(const A& cpy) { a=cpy.a; b=cpy.b; c=cpy.c; }  
          A(const A& cpy, bool x): A(cpy) { a = something_else; }  
}

关于c++ - 调用复制 ctor 和另一个 ctor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685371/

相关文章:

c++ - 如何动态确定libudev版本

c++ - 通过if else在函数中定义变量

c++在复制构造函数中使用const?

c++ - C++ 编译器会消除赋值重复吗?

c++ - 对静态整数数组的 undefined reference

c++ - 在 C++ 中初始化变量的偏好

c++ - 复制构造函数快捷方式

java - 如何在构造函数数组中查找复制构造函数

C++ 复制构造函数错误地接受参数

c++ - 当应用程序在没有适当的 wait() 调用的情况下关闭时 QThread 会发生什么?