在C++中,常量成員函數(shù)(const member function)是一個(gè)不能修改對(duì)象狀態(tài)的成員函數(shù)。這意味著在常量成員函數(shù)中,你不能調(diào)用任何非const成員函數(shù),因?yàn)樗鼈兛赡軙?huì)修改對(duì)象的狀態(tài)。要定義一個(gè)常量成員函數(shù),只需在函數(shù)聲明和定義前加上const
關(guān)鍵字即可。
以下是一個(gè)常量成員函數(shù)的示例:
#include <iostream>
class MyClass {
public:
// 構(gòu)造函數(shù)
MyClass(int value) : data(value) {}
// 常量成員函數(shù):不能修改對(duì)象狀態(tài)
int getData() const {
return data;
}
// 非const成員函數(shù):可以修改對(duì)象狀態(tài)(注意:這不是常量成員函數(shù))
void setData(int value) {
data = value;
}
private:
int data;
};
int main() {
MyClass obj(10);
// 調(diào)用常量成員函數(shù)
std::cout << "Data: " << obj.getData() << std::endl;
// 嘗試調(diào)用非const成員函數(shù)(編譯錯(cuò)誤)
// obj.setData(20);
return 0;
}
在這個(gè)例子中,getData()
是一個(gè)常量成員函數(shù),因?yàn)樗荒苄薷膶?duì)象的狀態(tài)。而setData()
是一個(gè)非const成員函數(shù),因?yàn)樗梢孕薷膶?duì)象的狀態(tài)。