const
定義常量
const int i=1;——i
不能改變
const指標
傳遞給函式的指標有四種方式:
1.指向非常量的非常量指標(
char * s)2.
指向常量的非常量指標(
const char * s
);可用於指向常量物件的非常量指標(或對常量資料的引用)進行傳值,從而得到引用傳遞的效能
3.指向非常量資料的常量指標
int *const ptr=&x;//
指標指向特定的記憶體單元而不能改變指標值。
4.指向常量資料的常量指標
const int * const prt=&x;
修飾函式的傳遞引數
(const & int num):
傳遞乙個引用引數,但是傳遞的引用的變數不如需改變。這樣的好處就是如果是乙個大的物件,不需要在對物件進行複製,而且不會改變原物件,相當於按值傳遞,同時又提高了效能。同樣可以表示為(
int const &num)或者
(const int * num);
同樣具有以上的特點
const
物件:const time noon(12,0,0);
物件不可修改,可提高效能。
const
物件不允許呼叫非
const
的成員函式。
定義const
成員函式:
int gethour() const;
同時,要在寫函式具體實現時定義。
通常,將不修改類中資料成員的成員函式宣告為
const
。編譯器允許對
const
成員函式進行過載。根據物件是否是
const
物件,選擇呼叫的函式。
建構函式和析構函式不能進行
const
宣告。儘管它是非
const
成員函式,但建構函式仍然能初始化物件。在建構函式中呼叫非
const
成員函式初始化
const
物件是允許的。
允許三種成員函式呼叫情況:
1.對非
const
物件呼叫非
const
成員函式
2.對非
const
物件呼叫
const
成員函式3.對
const
物件呼叫
const
成員函式。
const
資料成員 對於
const
資料成員,必須使用成員初始化器進行初始化(所有的資料成員都可以使用初始化器),
const
資料成員不能通過賦值修改或初始化。
成員初始化列表在建構函式體執行前被執行。
class increment
increment::increment(int c,int i)
:count(c),//
對於非const
成員初始化
increment(i);//
對於const
成員初始化
呼叫:increment value(10,5)
;
C 中const修飾符
const只對它左邊的東西起作用 唯一的例外就是const本身就是最左邊的修飾符,那麼它才會對右邊的東西起作用。指標常量 關鍵字順序為 const 和中文順序一致 例如 int const a,表示指標a是乙個常量,初始化後不可更改 永遠指向某個物件 但是指向的物件的值可以修改,如 a 10 常量指...
const 型別修飾符
const是用來限定所指定的變數或者函式不可作修改。1 修飾變數 當const用來修飾變數的時候,const所指定部分不可修改。a.修飾常規變數 如 const int a 10 int const a 10 這兩種方式的效果一樣,都是將a描述為常量,a的值在被賦初值後不可以修改。但是這和由巨集定義...
const修飾符 小結
1.const 和extern 預設狀態下const物件僅在檔案內有效 當編譯器以初始化的方式定義乙個const物件時,編譯器將在編譯過程中吧用到該變數的地方都替換成對應的值,為了執行上述替換,編譯器必須知道變數的初始值,所以通常const的有效域就在本檔案 為了能在其他檔案中使用該const變數 ...