是否可以编写构造函数赋值运算符,仅提及特殊成员?

时间:2011-03-19 19:41:27

标签: c++

假设我有N个成员的课程。大多数成员都是可复制的。只有一个成员需要手动复制代码。

是否有方法以这样的方式编写复制赋值运算符,即我只为非标准成员编写代码,让编译器为所有/其他成员生成复制代码?

2 个答案:

答案 0 :(得分:11)

是的,当然,使用用户定义的复制构造函数将您的成员包装在一个单独的类中。对于您正在讨论的类,不要编写用户定义的复制构造函数。

E.g。

class MyMemWrapper
{
   define copy constructor
};

class MyClass
{
   member 1;
   member 2;
   ...
   MyMemWrapper
};

答案 1 :(得分:1)

不,如果覆盖复制赋值运算符,编译器将不会生成默认的复制赋值运算符方法来复制标准成员,如您所愿。