1. 程式人生 > >C++技術——const修飾詞

C++技術——const修飾詞


const :表示不能改變被修飾變數的值;相反修飾:mutable :表示可變,不管在哪。
一 非類中作用:

1  const修飾形參引用:用於函式引數修飾,這樣就無法改傳遞過來的變數的值,只能訪問。
2  const修飾變數    :const int sum = 10;(代替巨集定義,定義巨集變數其實是一個常量,
巨集定義在編譯的時候替換掉,而const 變數不需要,顯得更加有優勢)
3  const int sum = 10; const int &a = sum;(const 修飾的變數,引用時也需要使
用const 引用,因為如果後期引用發生賦值現象,那麼就等於再改變const int sum 的值,
這明顯邏輯不對,所以才需要再引用前新增const.

二 類中作用:

1 修飾成員變數:修飾的變數在類中完成宣告和定義,宣告可以像其它變數一樣宣告即可
(但是如果是static const int sum = 10;   可以直接宣告並定義。), 定義需要在
建構函式的引數列表中完成,不可以在建構函式體內完成,因為函式體執行時間是在定義
了物件以後才呼叫,而常量要求聲明後及定義。

2 修飾成員函式:int sum_work( )const 
               {
                    cout<<sum<<endl;
               }
其實const 放在函式後面是由原因:const 其實是修飾物件,表示物件呼叫該函式不可以
通過該函式改變成員變數的值,因此在這種const成員函式中呼叫其它成員函式也應該是
const修飾的成員函式。
如果我們希望某些成員變數在const修飾的成員函式可以修改,可以在宣告該變數時添
加mutable即可,表示該變數是可被改變的,即使在const 修飾的成員函式中。