缺省构造函数
来源:互联网 发布:手机声音放大器软件 编辑:程序博客网 时间:2024/05/17 23:01
《c++编程思想》阅读笔记(6)
第4章:初始化与清除,内容太多,故分为几篇博客来进行归纳:)
缺省构造函数就是不带任何参数的构造函数。当编译器需要创建一个对象而又不知任何细节时,缺省的构造函数就显得非常重要。比如,我们有一个类Y,并用它来定义对象:
Y y4[2] = {Y(1)};
编译器就会报告找不到缺省的构造函数,数组中的第二个对象想不带参数来创建,所以编译器就去找缺省的构造函数。实际上,如果我们只是简单地定义了一个个Y对象的数组:
Y y5[7];
或一个单一的对象:
Y y;
编译器会报告同样的错误,因为它必须用一个缺省的构造函数去初始化数组中的每个对象。
缺省构造函数是如此重要,所以在一个构造类型(struct或class)中没有构造函数时,编译器就会自动创建一个。如下面的例子会正常运行:
class Z { int i; // private}; // no constructorZ z, z2[10];
然而,一旦有构造函数而没有缺省构造函数,上面的对象定义就会产生一个编译错误
对于一个c++的新手来说,自动产生的缺省构造函数并不会使编程变得容易。它实际上要求与已有的c代码保持向后兼容。在c中,创建一个struct数组的情况很常见,而在c++中,在没有缺省构造函数时,这会引起一个编译错误。
如果我们仅仅因为风格问题就去修改我们的c代码,然后用c++重新编译,也许我们会很不乐意。当将c代码在c++中编译时,我们总会遇到这样和那样的编译错误,但这些编译错误都是c++编译器所发现的c的不良代码。因为c++的规则更严格。事实上,用c++编译器去编译c代码是一个发现潜在的错误的很好的方法。
(这篇有点短,因为只剩这个内容了,有关该章的其他内容可以参考我的前两篇博客:))
0 0
- 缺省构造函数
- 缺省构造函数
- 关于缺省构造函数
- 缺省构造函数
- 构造缺省函数
- 构造函数的参数缺省
- C++基础:缺省构造函数
- 缺省构造函数 和 xml序列化
- 避免无用的缺省构造函数
- 避免无用的缺省构造函数
- java缺省构造函数(编译器)
- 《认清C++语言》---缺省构造函数
- More Effective C++:避免缺省构造函数
- 慎用缺省构造函数的一种场景
- C++之缺省参数的构造函数、缺省的构造函数及缺省的析构函数
- 函数的缺省形参和构造函数的缺省形参
- 第 5 页 构造函数、默认构造函数、 缺省构造函数
- Day39、构造函数重载、缺省构造函数、拷贝构造函数、初始化表
- ProjectOne(07) - 番外篇04 注册一个Github账号,并提交代码
- win10/8 中文版快速升级专业版
- libjpeg库的编译和应用
- POSIX信号量与互斥锁
- POJ 3007 Organize Your Train part II map与字典树的比较
- 缺省构造函数
- 如何下载离线版Chrome安装文件
- Servlet生命周期与工作原理
- requirejs
- 买水果(组合)
- Problem D、F: C语言习题 矩阵元素变换
- 遍历Map的四种方法
- linux程序设计(套接字)+TCP/IP网络编程学习笔记
- linux下开启-禁止笔记本触摸板