c++运算符重载 不用指针
时间: 2023-11-02 15:11:17 浏览: 43
运算符重载是指对已有的运算符进行重新定义,使其能够适用于新的数据类型或对象。在 C++ 中,运算符重载可以通过成员函数或非成员函数来实现。
以下是一个示例,演示了如何通过成员函数来重载运算符“+”,实现两个复数对象的加法运算:
```c++
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) { }
Complex operator+(const Complex& c) const {
return Complex(real + c.real, imag + c.imag);
}
void display() const {
cout << "(" << real << ", " << imag << ")";
}
private:
double real, imag;
};
int main() {
Complex a(1, 2), b(3, 4), c;
c = a + b;
a.display(); cout << " + "; b.display();
cout << " = "; c.display(); cout << endl;
return 0;
}
```
输出结果为:(1, 2) + (3, 4) = (4, 6)
在上面的示例中,我们定义了一个名为 Complex 的类,它包含了两个私有成员变量 real 和 imag,表示复数的实部和虚部。我们通过构造函数来初始化这两个成员变量。然后,我们使用成员函数 operator+() 重载了运算符“+”,使其能够进行两个复数的加法运算。
在主函数中,我们创建了两个复数 a 和 b,并将它们相加得到了另一个复数 c。最后,我们使用 display() 函数输出了 a、b 和 c。