在C++中,常量成員函數(const member function)不能被重載。常量成員函數表示該函數不會修改類的任何成員變量(除了那些被聲明為mutable的)。由于它們保證不會改變對象的狀態,因此不能有兩個具有相同名稱和參數列表的常量成員函數。
然而,你可以使用不同的參數類型或數量來創建類似功能的非常量成員函數和常量成員函數。這樣,編譯器可以根據傳遞的參數自動選擇正確的函數版本。例如:
class MyClass {
public:
void foo(int x) {
// 非const成員函數實現
}
void foo(int x, int y) const {
// const成員函數實現
}
};
在這個例子中,foo
函數被重載了,一個版本接受一個整數參數(非const版本),另一個版本接受兩個整數參數(const版本)。