C++语法细节
来源:互联网 发布:优化量能指标公式 编辑:程序博客网 时间:2024/05/16 09:33
/*****积累篇*****/
第一节
C++为类中提供类成员的初始化列表
类对象的构造顺序是这样的:
1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
1.类里面的任何成员变量在定义时是不能初始化的。
2.一般的数据成员可以在构造函数中初始化。
3.const数据成员必须在构造函数的初始化列表中初始化。
4.static要在类的定义外面初始化。
5.数组成员是不能在初始化列表里初始化的。
6.不能给数组指定明显的初始化。
这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。这个事情似乎说不过去啊?没有办法,我只好转而求助于静态数据成员。
到此,我的问题解决。但是我还想趁机复习一下C++类的初始化:
1.初始化列表:CSomeClass::CSomeClass() : x(0), y(1){}
2.类外初始化:int CSomeClass::myVar=3;
3.const常量定义必须初始化,C++类里面使用初始化列表;
4.C++类不能定义常量数组。
关于const,复习一下常量指针:
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
在C++类中,必须做如下事情:
1.必须对任何const或引用类型成员以及没有默认构造函数的 类 类型 的任何成员 显示地使用初始化列表进行初始化
2.类成员在定义时是不能被初始化的。
3.类的成员初始化顺序与成员变量在构造函数中的位置选后顺序无关,至于成员变量在类中定义的先后顺序有关。
所以下面的例子是错的:
对与上面的code,因为i先被初始化(i相对于j先定义的)而在i初始化时,j并没有被初始化,故执行出现问题了。
- C++语法细节
- c#+unity语法细节
- [C++] 我们需要掌握多少语法细节
- 一些C语言语法的细节
- objective-c 语法 细节(一)
- objective-c 语法 细节(二)
- C/CPP语言中的语法细节
- [面试] C/C++ 语法细节拾遗
- c结构体数组的赋值语法细节
- DTD约束语法细节
- DTD约束语法细节
- sql 语法细节
- pb语法细节
- DTD约束语法细节
- DTD约束语法细节
- Java语法细节题
- OC语法细节
- Mybaits 语法细节
- 通过堆栈找到crash的地方
- ActionForm的Date处理问题
- 正则表达式日期时间匹配
- Linux下Apache与PHP安全相关设置
- 绪论
- C++语法细节
- C#相等类型分析
- 简易读取配置在xml中的内容
- 编写使用root权限的android应用程序
- MPI + FORTRAN 发送接收数组操作
- 屏蔽优酷网等视频网站的15秒广告
- SQL面试题
- Ubuntu的NFS配置
- java基础加强(四)(类加载器和代理)