C++有哪幾種情況只能用初始化列表,而不能用賦值?


原文鏈接:http://blog.csdn.net/yuliu0552/article/details/6631509

 

 

C++有哪幾種情況只能用初始化列表,而不能用賦值?

(1)對於const和reference類型成員變量,它們只能夠被初始化而不能做賦值操作,因此只能用初始化列表;

初始化與賦值是不同的:
賦值是刪除原值,賦予新值,構造函數的意思是先開辟空間然后為其賦值,只能算是賦值,不算初始化;

初始化列表就不一樣了,開辟空間和初始化是同時完成的,直接給予一個值;

常量不能被賦值,只能被初始化,所以必須在初始化列表中完成;

C++的引用也一定要初始化,所以必須在初始化列表中完成。

    1) 引用必須被初始化,指針不必;

    2) 引用初始化以后不能被改變,指針可以改變所指的對象;

    3) 不存在指向空值的引用,但是存在指向空值的指針。

 

另外,子類在初始化自己時,如果父類沒有默認的構造函數那么也必須用初始話列表進行初始化,在列表里調用父類的構造函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM