const多才多藝,告訴編譯器和其他程式設計師某值應該保持不變。
可以用在class外部修飾global或namespace作用域中的常量,修飾檔案,函式,或static物件。
char greeting = "hello";
char* p = greeting; //non-const pointer, non-const data
const char* p = greeting; // non-const pointer, const data
char* const p = greeting; // const pointer, none const data
const char* const p = greeting; // const pointer, const data
如果關鍵字const出現在星號左邊,表示被指物為常量。如果出現在星號右邊,表示指標自身是常量。如果出現在星號兩邊,表示被指物和指標都是常量。
以下兩種寫法一樣:
void f1(const widget* pw);
void f2(widget const * pw);
const成員函式
為了確認成員函式可作用於const物件
作用:
使class介面容易被理解,明確哪些函式可以改的物件內容
操作const物件
若想在const函式中,修改非const成員,可以使用multable關鍵字修飾。這樣可以釋放掉non-static成員變數的一些束縛。
寫在最後
當const和non-const成員函式有實質等價的**實現時,令non-const呼叫const,可以避免**重複。
盡可能使用 const
使用 const 的好處在於它允許指定一種語意上的約束 某種物件不能被修改 編譯器具體來實施這種約束。通過 const,你可以通知編譯器和其他程式設計師某個值要保持不變。只要是這種情況,你就要明確地使用 const 因為這樣做就可以借助編譯器的幫助確保這種約束不被破壞。對指標來說,可以指定指標本身為...
盡可能使用const
const定義語義約束 制定乙個不被改動的物件,編譯器會強制實施這項約束。只要某值保持不變時事實,就應該確實說出來,這樣編譯器可以確保這項約束不違反。const多才多藝 可以用在classes外部修飾global或namespace作用域中的常量,或修飾檔案 函式 或區塊作用於中被宣告為static...
盡可能使用const
一 中心思想 1 將某些東西宣告為const可幫助編譯器偵測出錯誤用法。const可被施加於任何作用域內的物件 函式引數 函式返回型別 函式返回型別 成員函式本體 2 編譯器強制實施bitwise constness,但你編寫程式時應該使用 概念上的常量性 3 當const和non const成員函...