C++ 里面default的作用是什么?

我的意思是:既然我已经重载了拷贝控制函数/运算符,为什么还要保留编译器自动生成的合成拷贝控制呢?

阅读 8.4k
2 个回答

个人觉得,有时候重载拷贝构造函数/运算符是为了说明在创建类的时候已经考虑到了拷贝控制的相关功能,当编译器合成的拷贝控制功能满足需要的时候,使用=default就不用自己写一遍了。如果今后类添加了其他数据成员,需要自定义拷贝控制时,就不需要再添加拷贝构造函数/运算符,而只需要修改现有的就行了。

相当于
if...else if...else...
中最后那个else.意义是一样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题