定义并使用运算符重载函数
时间: 2023-12-29 20:01:58 浏览: 29
运算符重载是 C++ 的重要特性之一,它允许程序员重新定义已有的运算符,以适应特定的数据类型或对象。例如,我们可以通过运算符重载来实现自定义类的加法、减法、乘法等运算。
下面是一个简单的例子,演示如何定义并使用运算符重载函数:
```c++
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0, double i = 0) : m_real(r), m_imag(i) {}
Complex operator+(const Complex& other) const {
return Complex(m_real + other.m_real, m_imag + other.m_imag);
}
Complex operator-(const Complex& other) const {
return Complex(m_real - other.m_real, m_imag - other.m_imag);
}
void print() const {
cout << m_real << "+" << m_imag << "i" << endl;
}
private:
double m_real;
double m_imag;
};
int main() {
Complex c1(1, 2);
Complex c2(3, 4);
Complex c3 = c1 + c2;
Complex c4 = c1 - c2;
c1.print();
c2.print();
c3.print();
c4.print();
return 0;
}
```
在上面的代码中,我们定义了一个名为 `Complex` 的类,该类模拟了复数。我们重载了加法运算符 `+` 和减法运算符 `-`,并在每个函数中实现了相应的运算。然后我们创建了两个 `Complex` 类型的对象 `c1` 和 `c2`,并使用重载的运算符加法和减法对它们进行了操作。最后,我们打印了四个 `Complex` 类型的对象的值。
运行上面的程序,将会输出以下结果:
```
1+2i
3+4i
4+6i
-2-2i
```
从输出结果可以看出,我们成功地重载了加法运算符和减法运算符,实现了自定义类的运算。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)