在 C++ 中,可以通過在類中聲明多個具有相同名稱但參數列表不同的成員函數來重載它們。這種機制被稱為函數重載(Function Overloading)。
以下是一個簡單的示例,演示如何在 C++ 類中重載成員函數:
#include <iostream>
using namespace std;
class MyClass {
public:
// 重載成員函數,接受兩個 int 參數
void foo(int a, int b) {
cout << "foo(int, int): "<< a << ", "<< b << endl;
}
// 重載成員函數,接受一個 int 參數和一個 MyClass 引用參數
void foo(int a, MyClass& obj) {
cout << "foo(int, MyClass&): "<< a << ", " << obj.getValue() << endl;
}
// 重載成員函數,僅接受一個 MyClass 引用參數
void foo(MyClass& obj) {
cout << "foo(MyClass&): " << obj.getValue() << endl;
}
};
class MyClass2 {
public:
int getValue() {
return 42;
}
};
int main() {
MyClass obj1;
MyClass2 obj2;
// 調用重載的成員函數
obj1.foo(1, 2); // 輸出:foo(int, int): 1, 2
obj1.foo(1, obj2); // 輸出:foo(int, MyClass&): 1, 42
obj1.foo(obj2); // 輸出:foo(MyClass&): 42
return 0;
}
在這個示例中,我們定義了一個名為 MyClass
的類,并在其中重載了三個名為 foo
的成員函數。這些函數的參數列表不同,因此它們被視為不同的函數。在 main
函數中,我們創建了一個 MyClass
對象和一個 MyClass2
對象,并調用了這些重載的成員函數。