const c++

1.常指針
const使用方法一般是  類型+const+類名 或 const+類型+類名
常指針只有一種定義方法 int* const p
如果是 const int* p其實const修飾的是int,這個p是指向一個常量的指針,也就是說這個指針可變
    const int *m1 = new int(10);
    int* const m2 = new int(20);
    *m2=100; //true
    *m1=100; //false
    m1++;//true
    m2++; //false
2.常量函數
常量函數是C++對常量的一個擴展,它很好的確保了C++中類的封裝性。在C++中,爲了防止類的數據成員被非法訪問,將類的成員函數分成了兩類,一類是常量成員函數(也被稱爲觀察着);另一類是非常量成員函數(也被成爲變異者)。在一個函數的簽名後面加上關鍵字const後該函數就成了常量函數。對於常量函數,最關鍵的不同是編譯器不允許其修改類的數據成員。
常量對象無法調用非常量成員函數(非常量函數存在修改對象數據成員的可能)
當存在同名同參數和返回值的常量函數和非常量函數時,具體調用哪個函數是根據調用對象是常量對像還是非常量對象來決定的。常量對象調用常量成員;非常量對象調用非常量的成員。
3.常量返回值
emmm比如說a-b=c無法通過編譯是因爲重載-符號時返回值聲明的是const,所以a-b是一個常量無法進行賦值,但是c=a-b是可以的
const 成員函數的返回類型是引用時候,需要加const 約束,好像是因爲不能出現 const int (return)-> int & (函數返回值)這種類型轉換

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