【发布时间】:2014-07-11 23:38:13
【问题描述】:
我发现自己做的一件常见事情是制作“几乎默认”的复制构造函数和赋值运算符。也就是说,我发现自己处于编译器提供的复制和赋值运算符适用于大多数数据成员的情况,但是有一个特定的数据成员需要以不同的方式处理。这意味着我必须显式创建一个复制构造函数/赋值运算符,包括显式列出所有具有简单复制语义的数据成员。对于有相当数量的数据成员的类,或者稍后添加成员变量但未添加到复制构造函数/赋值运算符时,这可能会很烦人。
有没有办法告诉 C++ 编译器显式声明的复制构造函数/赋值运算符应该像隐式一样工作,除了一些随后运行的附加代码? (而且这样的语法是C++98兼容吗,还是需要C++11或者C++14支持?)
【问题讨论】:
-
为该数据成员实施适当的 RAII 包装器,然后默认构造函数将适用于所有内容。
标签: c++ copy-constructor assignment-operator