const用法
基礎用法:
修飾常量
void function(const int Var)保證形參在函數中不變
未知用法:
void function(const Class& Var);
//引用參數在函數內不可以改變
//*不加引用符號則傳遞的是復制
//*使用加const的引用既保證了傳遞的對象不是復制(是本身),也保證了傳遞對象不會被改變
void function()const;
//常成員函數, 它不改變對象的成員變量. 也不能調用類中任何非const成員函數。
//*const成員函數應該在函數原型說明和函數定義中都增加const限定:
//**但構造函數和析構函數對這個規則例外,它們從不定義為常量成員,但可被常量對象調用(被自動調用)。它們也能給常量的數據成員賦值,除非數據成員本身是常量。
一句話總結以下const和指針:const的下一個整體是什麽,什麽就是常量
1)、const在前面
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可變
const (char *) pContent;//pContent是const,*pContent可變
char* const pContent; //pContent是const,*pContent可變
const char* const pContent; //pContent和*pContent都是const
2)、const在後面,與上面的聲明對等
int const nValue; // nValue是const
char const * pContent;// *pContent是const, pContent可變
(char *) const pContent;//pContent是const,*pContent可變
char* const pContent;// pContent是const,*pContent可變
char const* const pContent;// pContent和*pContent都是const
總結:
①區分 const int* a和const (int*)a
int const * a和int* const a
②void function(const Class& Var);優勢(既傳遞引用又保證引用不被改變)
③void function()const相當說明該函數不改變對象的值
const用法