在C++中,常量成員函數(const member function)是一個不能修改對象狀態的成員函數。這意味著在常量成員函數中,你不能調用任何非const成員函數,因為它們可能會修改對象的狀態。要定義一個常量成員函數,只需在函數聲明和定義前加上const
關鍵字即可。
以下是一個常量成員函數的示例:
#include <iostream>
class MyClass {
public:
// 構造函數
MyClass(int value) : data(value) {}
// 常量成員函數:不能修改對象狀態
int getData() const {
return data;
}
// 非const成員函數:可以修改對象狀態(注意:這不是常量成員函數)
void setData(int value) {
data = value;
}
private:
int data;
};
int main() {
MyClass obj(10);
// 調用常量成員函數
std::cout << "Data: " << obj.getData() << std::endl;
// 嘗試調用非const成員函數(編譯錯誤)
// obj.setData(20);
return 0;
}
在這個例子中,getData()
是一個常量成員函數,因為它不能修改對象的狀態。而setData()
是一個非const成員函數,因為它可以修改對象的狀態。