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