c++ operator 重载
时间: 2023-10-18 16:11:20 浏览: 114
C++ operator关键字(重载操作符)的用法详解
C++ 允许程序员对大多数运算符进行重载,以便在特定的类或数据类型上定义自定义行为。这种重载运算符的过程称为运算符重载。
C++ 中重载运算符的语法如下:
```c++
<return_type> operator<operator_symbol>(<arguments>)
{
// code to define the behavior of the overloaded operator
}
```
其中,`return_type` 是重载运算符的返回类型,`operator_symbol` 是要重载的运算符,`arguments` 是运算符要操作的参数。
例如,下面是一个重载加法运算符 `+` 的例子:
```c++
#include <iostream>
using namespace std;
class MyNumber {
int num;
public:
MyNumber(int n) { num = n; }
MyNumber operator+(MyNumber &obj) {
MyNumber res(0);
res.num = num + obj.num;
return res;
}
int getNum() { return num; }
};
int main() {
MyNumber a(2), b(3), c(0);
c = a + b;
cout << "a: " << a.getNum() << endl;
cout << "b: " << b.getNum() << endl;
cout << "c: " << c.getNum() << endl;
return 0;
}
```
输出结果为:
```
a: 2
b: 3
c: 5
```
在上面的示例中,我们自定义了一个 `MyNumber` 类,它包含一个整数 `num` 和一个重载了加法运算符 `+` 的函数。当我们执行 `c = a + b;` 时,编译器会自动调用 `a` 对象的 `operator+()` 函数,并将 `b` 对象作为参数传递给它。函数将 `a` 和 `b` 对象的 `num` 相加,并将结果存储在一个新的 `MyNumber` 对象 `res` 中,然后返回该对象。最后,将 `res` 赋值给 `c` 对象。
阅读全文