C++ const使用總結


這里針對C++中const的一些一般用法進行一下簡單的總結

一、定義常量     

常量不可修改     

const int val = 5int const val = 5;

與#define宏定義常量的區別:
(1)const常量具有類型,編譯器可以進行安全檢查;#define宏定義沒有數據類型,只是簡單的字符串替換,不能進行安全檢查。

(2)有些集成化的調試工具能對const常量進行調試,對宏常量不能調試

 

二、修飾指針       

    

1const int* p;         //指針p指向的內容是常量,不可改變。2int* const p;          //指針本身是一個常量,不可改變。3const int* const p;   //指針本身和指向的內容都是常量,都不可以改變。

區分方法,*p代表對象內容,p代表指針本身,看const修飾的是哪個。


三、在函數中使用const    

修飾函數參數    

void function(const int Var);  

表明參數在函數體內不能被修改,但此處沒有任何意義,Var本身就是形參,在函數內不會改變。
包括傳入的形參是指針也是一樣。
(1)使用引用參數,可以防止創建副本,減少內存開銷,同時可以在函數中對引用參數修改,函數結束后,引用參數的修改仍然存在。
(2)如果為了防止對引用參數進行修改,可以對該參數加上const關鍵字。

修飾函數返回值           

與修飾普通變量和指針意義差不多,而在傳引用時,如果不希望函數返回值被改變,就可以添加關鍵字 const

 

四、在類中使用const     

修飾類成員變量     

 class A
 {               
    const int nValue;       
 }
    

  (1)成員常量不可被修改。

(2)只能在初始化列表中被賦值。

修飾類成員函數     

 class A
 {
    void function()const;
 }

(1)常成員函數, 它不改變對象的成員變量. 代表只讀函數,增加程序的可讀性。                
  (2)不能調用類中任何非const成員函數。


免責聲明!

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



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