通常我们对类成员进行“初始化”有两种方式:
- 构造函数后面跟冒号;
- 构造函数里面对成员进行赋值。
关键字
const和引用必须在声明的时候就初始化,换句话说就是在给const和引用类型变量分配内存的时候就初始化。
数据类型
根据C++的规则,const类型和引用不可以被赋值,只能被初始化。
其实构造函数里面调用等于号并不是真正意义上的“初始化”。这个过程相当于:
- 系统创建成员变量;
- 创建完后再进行赋值操作。
而在构造函数后面跟冒号,就相当于:
- 系统创建成员变量并且初始化。也就是系统为成员变量分配了一块内存并且把相应的数据给填了进去。而构造函数里面调用等于号的方式是分配好后再进行赋值,多了一个步骤。
构造函数后面跟的冒号代码是在进入构造函数并且在括号里面的第一行代码之前被执行。
通俗的讲,构造函数后面的冒号就是初始化,而括号里面的等于号并不是初始化,而是变量生成以后的赋值而已(永远都是2个步骤)。
引用b初始化完成后,就永远指向初始化时候的那个变量,无法再改变了。我这里的“引用不可以被赋值”是指不能给引用本身赋值来改变它的指向,并不是说不可以改变引用指向的内存的内容。
数组
数组名是指向数组中第一个元素的常量指针
字符
0表示整数,’0’表示0字符,\\0’表示ASCII码值为0的字符。
在字符串中’\\0’用作字符串的结束标志。
‘\\0’是字符串来结束标志位 对应ascii码:00;
‘0’是字符0 对应ascii码:30;
0是数字0 对应ascii码:00;