84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我的意思是:既然我已经重载了拷贝控制函数/运算符,为什么还要保留编译器自动生成的合成拷贝控制呢?
ringa_lee
个人觉得,有时候重载拷贝构造函数/运算符是为了说明在创建类的时候已经考虑到了拷贝控制的相关功能,当编译器合成的拷贝控制功能满足需要的时候,使用=default就不用自己写一遍了。如果今后类添加了其他数据成员,需要自定义拷贝控制时,就不需要再添加拷贝构造函数/运算符,而只需要修改现有的就行了。
=default
相当于if...else if...else...中最后那个else.意义是一样的
个人觉得,有时候重载拷贝构造函数/运算符是为了说明在创建类的时候已经考虑到了拷贝控制的相关功能,当编译器合成的拷贝控制功能满足需要的时候,使用
=default
就不用自己写一遍了。如果今后类添加了其他数据成员,需要自定义拷贝控制时,就不需要再添加拷贝构造函数/运算符,而只需要修改现有的就行了。相当于
if...else if...else...
中最后那个else.意义是一样的