const的用法

(老師的ppt,拿來整理一下,在這裏存個檔。)


const 用來修飾類型, 則爲常類型, const可以放在類型的前面,也可以放在類型的後面。
(對一個具體的變量來說,如果const直接出現在該變量的前面,則該變量的值一旦被初始化就不能再改變。)
常變量在定義的時候必須初始化,而且以後也不能再賦值。

const 用來修飾類的成員函數, 則爲常函數, 該函數中不能修改類的成員變量。常函數不能是static的。

const 用來修飾對象, 則爲常對象, 常對象只能調用該對象的常函數。

當類的非(const)常對象去調用函數時,先找非const版本,找不到再找const版本。
而類的常對象調用函數時,只能找const版本。

類中的成員變量只有時static const的才能在定義的時候初始化,否則只能在構造函數中初始化了。

(我想的是這樣的:
        加了const以後, 變量就變成了非左值了。只有一種情況下const的變量可以在左邊,就是const變量定義的時候,const int i = 0;


所以const來修飾函數的返回值的時候:const int &func(int i) ; 不能這樣使用 func(42) = 12;因爲左邊是個非左值。

const 用來修飾引用, 則爲常引用, 不能通過該引用,來改變被引用對象的值。
另外當一個引用和一個對象連接起來後,就無法和其他的對象連接了,常引用當然也是如此。
const int &x = y;
你能把x再指向z麼,沒這種語法啊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章