对象的成员的初始化

  • Post author:
  • Post category:其他


变量类型:

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 !)

(作为成员变量,在构造函数中未指定值时)




转载于:https://www.cnblogs.com/nanlan2017/p/9230301.html