1. 程式人生 > >const用法

const用法

改變 一個 變量 const成員函數 函數 下一個 AS 對象 不能

基礎用法:
  修飾常量
  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用法