變量類型:
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 !)
(作為成員變量,在構造函數中未指定值時)
?
?
?
?
?