C++类成员和数据成员初始化总结
来源:互联网 发布:linux卸载iso 编辑:程序博客网 时间:2024/06/09 23:30
C++为类中提供类成员的初始化列表。
类对象的构造顺序是这样的:
1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
1.类里面的任何成员变量在定义时是不能初始化的。
2.一般的数据成员可以在构造函数中初始化。
3.const数据成员必须在构造函数的初始化列表中初始化。
4.static要在类的定义外面初始化。
5.数组成员是不能在初始化列表里初始化的。
6.不能给数组指定明显的初始化。
这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。这个事情似乎说不过去啊?没有办法,我只好转而求助于静态数据成员或者使用枚举。
到此,我的问题解决。但是我还想趁机复习一下C++类的初始化:
1.初始化列表:
Demo::Demo() : x(3), y(5){}
2.类外初始化:int CSomeClass::myVar=3;
3.const常量定义必须初始化,C++类里面使用初始化列表;
4.C++类不能定义常量数组。
在C++类中,必须做如下事情:
1.必须对任何const或引用类型成员以及没有默认构造函数的类 类型 的任何成员 显示地使用初始化列表进行初始化;
2.类成员在定义时是不能被初始化的;
3.类的成员初始化顺序与成员变量在构造函数中的位置选后顺序无关,与成员变量在类中定义的先后顺序有关。
例如 :
class Demo { int first; // 第一个变量 int second;// 第二个变量 public : Demo( int value):second(value),first(second) { } }这个初始化列表的顺序是错误的,首先在声明成员变量的时候first要先于second,所以初始化顺序是先初始化first,然后再second。但是初始化列表中first的初始值是second的值,所以这样的初始化顺序是错误的。
- C++类成员和数据成员初始化总结
- C++类成员和数据成员初始化总结
- C++类成员和数据成员初始化总结
- C++类成员和数据成员初始化总结
- C++类成员和数据成员初始化总结
- C++类成员和数据成员初始化总结
- 类成员初始化总结
- 类成员的初始化总结
- 类的数据成员初始化
- 类数据成员的初始化
- C++——类数据成员和类成员函数
- c++static数据成员和成员函数
- [C++]C++语言类成员变量初始化总结
- C++类中常量数据成员和静态数据成员初始化
- 类和对象:数据成员之使用默认参数初始化
- 数据成员初始化
- 数据成员的初始化
- 学习总结-访问权限修饰符,实例成员和类成员,初始化字段
- Apahce 无法启动
- jfreechart barchart 显示设置
- 11917 - Do Your Own Homework
- VxWorks启动代码rominit.s分析
- poj2236 Wireless Network
- C++类成员和数据成员初始化总结
- IE下CSS问题及解决
- jquery类选择器及循环
- HTML&CSS构建网站链接
- firefox 9.0 不支持 word-break :break-all;
- Web开发者不容错过的20段CSS代码
- 递归算法详细分析
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法(觉得比书上的好)
- Android application testing with the Android test framework