变量类型:
1. 内置基本类型: int, char, bool,
2. 复合类型 (compound type): 指针、引用、数组
3. 类类型: struct, class (string,vector等)
========================================================================
定义变量时:
一:进行“初始化”:可分为
①指定值 初始化:
int i = 3;
Dog dog("snoopy");
②使用默认值 初始化(不指定值):
(在全局范围)int i; ——> 在全局范围定义的 内置类型默认时被初始化为0值
Dog dog; ——> 成员变量:【默认构造函数的方案】
(一)类类型成员变量使用该类型的默认构造
(二)内置类型、指针不会默认初始化——> Dog的默认构造函数中应对内置基本类型/指针进行显式初始化为0值
(三)引用类型成员必须在构造时绑定已存在的对象。——> 不要把引用类型作为成员变量。
二:不进行初始化: ——> 此时只分配内存空间,值是未定义的(该地址上原有的0/1信息),若使用会导致未定义的行为
(在函数体内)int i;
(在函数体内) int* pt; (并不等于nullptr !)
(作为成员变量,在构造函数中未指定值时)