類中成員函式宣告後面的const的含義!
這個const一般是對類中成員函式屬性的宣告,但這個宣告怪怪的,只能放在函式宣告的尾部,大概是因為其它地方都已經被佔用了。這個宣告表示任這個函式不會修改類中的資料成員。如果在編寫const成員函式時,不慎修改了資料成員,或者呼叫了其它非const成員函式,編譯器將指出錯誤,這無疑會提高程式的健壯性。
以下程式中,類stack的成員函式GetCount僅用於計數,從邏輯上講GetCount應當為const函式。編譯器將指出GetCount函式中的錯誤。
class Stack
{
public:
void Push(int elem);
int Pop(void);
intGetCount(void) const; // const 成員函式
private:
int m_num;
int m_data[100];
};
int Stack::GetCount(void)const
{
++ m_num; // 編譯錯誤,企圖修改資料成員m_num
Pop();// 編譯錯誤,企圖呼叫非const函式
returnm_num;
}
關於Const函式的幾點規則:
a.在類中被const宣告的成員函式只能訪問const成員函式,而非const函式可以訪問任意的成員函式,包括const成員函式..
b.在類中被const宣告的成員函式不可以修改物件的資料,不管物件是否具有const性質.它在編譯時,以是否修改成員資料為依據,進行檢查.
c加上mutable修飾符的資料成員,對於任何情況下通過任何手段都可修改,自然此時的const成員函式是可以修改它的
-------------------------------------------
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!
相關文章
- C++ 中的 const 物件與 const 成員函式C++物件函式
- 【轉】Const,Const函式,Const變數,函式後面的Const函式變數
- 引入const成員函式函式
- 模板類成員函式的定義和宣告為什麼要放在一個檔案中函式
- c++ const 成員函式C++函式
- c++中模板類的成員函式的宣告與定義應該放在標頭檔案裡C++函式
- C++:類的成員函式C++函式
- C++ 類成員函式C++函式
- C++中的static成員、static const成員和const成員的初始化C++
- 類內的靜態成員函式函式
- c++中string類成員函式的總結C++函式
- 函式指標使用c++類成員函式函式指標C++
- 類别範本及其成員函式的定義及注意事項函式
- OpenCV(cv::Mat 類的成員函式 ptr<T>())OpenCV函式
- 當心編譯器生成的隱含成員函式 (轉)編譯函式
- C/C++中函式指標的含義C++函式指標
- 內部類中的成員的定義和使用
- const放在函式前和放在函式後函式
- Generator 函式的含義與用法函式
- async 函式的含義和用法函式
- Thunk 函式的含義和用法函式
- C++中函式後面加const修飾C++函式
- 結構體三種例項化方法(含成員函式)結構體函式
- co 函式庫的含義和用法函式
- c++類别範本成員函式報錯C++函式
- TS定義陣列 ts宣告函式陣列函式
- c++智慧指標中的reset成員函式C++指標函式
- 類成員函式作為map容器的value使用例項函式
- 變數和函式宣告提升,let和var const區別變數函式
- 在Java中是如何定義和宣告介面的?Java
- JavaScript中七種函式呼叫方式及對應 this 的含義JavaScript函式
- 第十三篇:成員函式與非成員函式的選擇函式
- 對於靜態成員來說是類的建構函式,對於例項成員是類的原型物件。函式原型物件
- 淺談C++指標直接呼叫類成員函式C++指標函式
- JS 中的函式表示式和函式宣告你混淆了嗎?JS函式
- C++類中的常成員和靜態成員C++
- 類成員函式的重寫,過載和隱藏的區別函式
- 關於變數的宣告和定義、內部函式和外部函式變數函式