(1)對於const和reference類型成員變量,它們只可以被初始化而不能作賦值操做,所以只能用初始化列表; 函數
初始化與賦值是不一樣的:
賦值是刪除原值,賦予新值,構造函數的意思是先開闢空間而後爲其賦值,只能算是賦值,不算初始化; spa
初始化列表就不同了,開闢空間和初始化是同時完成的,直接給予一個值; .net
常量不能被賦值,只能被初始化,因此必須在初始化列表中完成; 指針
C++的引用也必定要初始化,因此必須在初始化列表中完成。 對象
【 blog
1) 引用必須被初始化,指針沒必要; get
2) 引用初始化之後不能被改變,指針能夠改變所指的對象; 變量
3) 不存在指向空值的引用,可是存在指向空值的指針。 構造函數
】 引用
上面這一段摘自:http://blog.csdn.net/yuliu0552/article/details/6631509
另外,子類在初始化本身時,若是父類沒有默認的構造函數那麼也必須用初始話列表進行初始化,在列表裏調用父類的構造函數。