《深度探索C++对象模型》- 编译器合成默认构造函数
2016-09-11 16:53
375 查看
原文地址:
http://blog.csdn.net/ljianhui/article/details/46247897
编译器需要的时候是遇到如下四种情况的时候,它需要为以下四种类型的类合成一个默认的构造函数:
1)类的成员变量带有默认构造函数
2)类的基类带有默认构造函数
3)类带有virtual函数
4)类带有一个virtual基类
且合成操作只有在构造函数真正需要被调用时才会被合成。
常见的两个误解:
1)任何class如果没有定义默认构造函数,就会被合成出来。
2)编译器合成的默认构造函数,会显式设定class内每一个成员数据的默认值。
《深度探索C++对象模型》详细讲解
原博文给出了各种情况的实例代码
http://blog.csdn.net/ljianhui/article/details/46247897
编译器需要的时候是遇到如下四种情况的时候,它需要为以下四种类型的类合成一个默认的构造函数:
1)类的成员变量带有默认构造函数
2)类的基类带有默认构造函数
3)类带有virtual函数
4)类带有一个virtual基类
且合成操作只有在构造函数真正需要被调用时才会被合成。
常见的两个误解:
1)任何class如果没有定义默认构造函数,就会被合成出来。
2)编译器合成的默认构造函数,会显式设定class内每一个成员数据的默认值。
《深度探索C++对象模型》详细讲解
原博文给出了各种情况的实例代码
相关文章推荐
- 四种情况,编译器必须为未声明构造函数之class合成一个默认构造函数
- C++:编译器合成默认构造函数和复制控制成员的条件
- c++ 编译器为class自动合成默认构造函数的四种情况
- 编译器合成的拷贝构造函数
- C++ 中不能依赖合成默认构造函数
- C++构造与析构(14) - 编译器何时创建默认构造函数和拷贝构造函数
- C++ 编译器生成默认构造函数的四种情况
- 关于C++合成的默认构造函数
- 《深度探索c++ 对象模型》有感之默认构造函数,拷贝构造函数,拷贝运算符的合成
- 合成的默认构造函数
- 编译器什么时候会合成default constructor
- C++构造函数语意学--编译器在哪些情况合成default constructot
- 编译器合成构造函数的情形
- 编译器合成的default constructor
- 编译器提供默认构造函数的几种情况
- C++ 编译器生成默认构造函数的四种情况
- 什么时候编译器会合成派生类的构造函数
- C++编译器默认构造函数合成机制分析
- 关于默认构造函数的几个错误认识(四种情况下,编译器会生成默认构造函数)
- c++中编译器必须为未申明constructor的classes合成一个default constructor的4种情况详解