在C++中,常量成员函数(const member function)不能被重载。常量成员函数表示该函数不会修改类的任何成员变量(除了那些被声明为mutable的)。由于它们保证不会改变对象的状态,因此不能有两个具有相同名称和参数列表的常量成员函数。
然而,你可以使用不同的参数类型或数量来创建类似功能的非常量成员函数和常量成员函数。这样,编译器可以根据传递的参数自动选择正确的函数版本。例如:
class MyClass {
public:
void foo(int x) {
// 非const成员函数实现
}
void foo(int x, int y) const {
// const成员函数实现
}
};
在这个例子中,foo
函数被重载了,一个版本接受一个整数参数(非const版本),另一个版本接受两个整数参数(const版本)。