C++ const使用總結

這裏針對C++中const的一些通常用法進行一下簡單的總結安全

1、定義常量     

常量不可修改     

函數

const int val = 5int const val = 5;

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

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

 

2、修飾指針       

    

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

區分方法,*p表明對象內容,p表明指針自己,看const修飾的是哪一個。指針


3、在函數中使用const    

修飾函數參數    

void function(const int Var);  

代表參數在函數體內不能被修改,但此處沒有任何意義,Var自己就是形參,在函數內不會改變。
包括傳入的形參是指針也是同樣。
(1)使用引用參數,能夠防止建立副本,減小內存開銷,同時能夠在函數中對引用參數修改,函數結束後,引用參數的修改仍然存在。
(2)若是爲了防止對引用參數進行修改,能夠對該參數加上const關鍵字。調試

修飾函數返回值           

與修飾普通變量和指針意義差很少,而在傳引用時,若是不但願函數返回值被改變,就能夠添加關鍵字 constcode

 

4、在類中使用const     

修飾類成員變量     

 class A
 {               
    const int nValue;       
 }
    

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

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

修飾類成員函數     

 class A
 {
    void function()const;
 }

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

內存

相關文章
相關標籤/搜索