effective C++ 笔记:条款05 C++默认编写调用了哪些函数

构造函数、拷贝构造函数、赋值操作函数(重载)、析构函数,这些函数如果没有显式编写的话,编译器将自动生成其缺省的版本,自动生成的函数都是public以及inline的。

对于默认的对象赋值操作,如果其中涉及非法操作(如改变引用的指向,改变const变量等),则编译器就会拒绝生成缺省的赋值操作函数。

另一种特殊情况是父类的赋值操作函数为private,首先此时编译器不会再为子类生成默认赋值操作函数,但此时子类对象不能进行赋值操作,因为无权调用父类的private成员。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,897评论 2 9
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,730评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,165评论 1 32
  • 年关将至,府里随着大姐的到来,也添了几多欢笑和暖意,而我也在与大姐的接触中渐渐成为了无话不谈的姐妹。确实这样一个人...
    乔乔卿本佳人阅读 193评论 0 0
  • 一早起来,觉得应该带娃尽快去挂水。 我:你今天还要再挂一天水。 娃撇嘴。 我:现在去挂吧? 娃撇嘴。 我:你想什么...
    诺拉的以后阅读 220评论 0 0