const變量、const指針、const參數、const對象、const成員函數

const關鍵字是“constant”的縮寫,意爲永恆不變的,以下列舉const的作用:
    1.const變量    
     
const int a =1;
     int const a =1;

    爲防止定義的變量被修改,可用const修飾變量,const放在前面或後面均可,效果等同。const變量即爲常量,const變量定義的時候必須初始化。const變量與符號常量的區別(1)符號常量由預編譯器處理,const變量由變量處理(2)在編譯是符號常量已經不存在了,而const變量依然存在(3)符號常量的作用域從定義位置開始,到源文件結束,而const變量與一般變量一樣。
    指針常量:const int * a=&b;// 指針可變,指針所指內容不可變  
    指向常量的常指針 const int const *a=&b; //指針不可變,指針所指內容不可變
    2.const指針
    int * const a =&b;
    const (int *) a=&b;
    爲防止定義的指針被修改,可用const修飾指針。
    a=&c;  //錯誤,a爲常指針,不可修改
    *a=c;   //正確,指針不可變,指針所指內容可變
    3.const參數
    爲防止參數被改變,可用const 修飾參數,作爲輸入參數,輸出參數嚴禁用const修飾。指針或引用做函數參數時,函數內部對其進行修改時可影響輸入值,若不想輸入值被改變,可用const修飾。
    4.const成員函數
    int get()const;
    凡不修改類內數據成員的函數均可定義爲const成員函數,聲明處const放在函數名後,“;”前,定義處const放在函數名與函數體之間。此處const修飾的是this指針指向的對象,相當於限定對象爲常對象。
    5.const對象
    爲防止對象內部數據成員被改變,可用const修飾,const對象只能調用const函數,非const函數可能會改變數據成員,構造函數和析構函數除外,構造函數和析構函數均不定義爲const類型,但是const對象要引用,可引用靜態函數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章