在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成员函数,因为它可以修改对象的状态。