📅  最后修改于: 2023-12-03 15:29:55.447000             🧑  作者: Mango
在C++中,我们可以使用运算符重载来定义我们自己的数据类型,使得这些数据类型能够像内置类型一样使用运算符。
下面是一个示例程序,它演示了如何使用运算符重载来减去复数。
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex(double real = 0, double imag = 0) : real(real), imag(imag) {}
Complex operator- (const Complex& other) const {
return Complex(real - other.real, imag - other.imag);
}
void print() const {
cout << "(" << real << ", " << imag << ")" << endl;
}
};
int main() {
Complex x(1, 2);
Complex y(3, 4);
Complex z = x - y;
z.print();
return 0;
}
在上面的示例中,我们定义了一个Complex
类来表示复数。Complex
类有两个私有成员变量real
和imag
,分别表示实部和虚部。Complex
类还定义了一个构造函数,用于初始化实部和虚部。
我们使用运算符重载函数operator-
来重载减号运算符,使得我们可以像内置类型一样使用减号运算符来减去两个复数。运算符重载函数operator-
返回一个新的复数对象,其实部和虚部分别为两个复数对象对应实部和虚部的差值。
在主函数中,我们创建了两个复数对象x
和y
,它们的实部和虚部分别为(1, 2)
和(3, 4)
。我们使用运算符重载函数operator-
来减去这两个复数,得到了一个新的复数对象z
。最后,我们打印输出了新的复数对象z
的实部和虚部分别为-2
和-2
。
通过这个示例,我们可以看到,使用运算符重载可以让我们的自定义数据类型更加灵活和易用。在实际应用中,我们可以根据具体需要进行适当的运算符重载操作,以适应不同的场景和需求。