在C++中,方法重载(Overloading)是指在同一个类中定义多个同名的方法,但这些方法的参数列表不同。这样,编译器可以根据传递的参数类型和数量自动选择正确的方法来调用。方法重载遵循以下规则:
下面是一个简单的C++方法重载示例:
#include <iostream>
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.value;
return os;
}
int main() {
MyClass a, b, c;
a.value = 1;
b.value = 2;
c = a + b; // 调用重载的加法运算符
cout<< c << endl; // 调用重载的输出运算符
return 0;
}
在这个示例中,我们为MyClass
类重载了加法运算符(operator+
)和输出运算符(operator<<
)。注意,输出运算符被声明为friend
函数,这样它就可以访问类的私有成员value
。