阅读量:119
在C++中,方法重载(Overloading)是指在同一个类中定义多个同名的方法,但这些方法的参数列表不同。这样,编译器可以根据传递的参数类型和数量自动选择正确的方法来调用。方法重载遵循以下规则:
- 方法名必须相同。
- 参数列表必须不同,即参数的个数、类型或顺序至少有一个不同。
- 返回类型不是重载的依据,可以相同也可以不同。
- 重载的方法不能是构造函数。
下面是一个简单的C++方法重载示例:
#include
using namespace std;
class MyClass {
public:
// 重载加法运算符
MyClass operator+(const MyClass& other) {
MyClass result;
result.value = this->value + other.value;
return result;
}
// 重载输出运算符
friend ostream& operator<<(ostream& os, const MyClass& obj);
private:
int value;
};
ostream& operator<<(ostream& os, const MyClass& obj) {
os << "MyClass value: " << obj class="hljs-keyword">return os;
}
int main() {
MyClass a, b, c;
a.value = 1;
b.value = 2;
c = a + b; // 调用重载的加法运算符
cout<< c class="hljs-comment">// 调用重载的输出运算符
return 0;
}
在这个示例中,我们为MyClass类重载了加法运算符(operator+)和输出运算符(operator<<)。注意,输出运算符被声明为friend函数,这样它就可以访问类的私有成员value。