cpp简述运算符重载函数如何定义和使用
时间: 2024-03-16 09:44:59 浏览: 70
在C++中,我们可以重载运算符,使得它们能够用于自定义类型的对象。运算符重载函数是带有特殊名称的普通函数,这些名称以"operator"关键字开头,后面跟着表示重载运算符的符号。
例如,我们可以重载加号运算符`+`,使得它能够用于两个自定义类型的对象的相加。重载运算符函数的一般形式如下:
```
返回类型 operator运算符(参数列表) {
// 函数体
}
```
其中,`operator运算符`是重载的运算符,`参数列表`是运算符所需的参数,返回类型是运算符的返回类型。
例如,我们可以重载`+`运算符,如下所示:
```cpp
class Complex {
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imag + other.imag);
}
private:
double real; // 实部
double imag; // 虚部
};
```
在上面的代码中,我们定义了一个名为`Complex`的类,它代表一个复数。我们通过在类中定义一个名为`operator+`的函数重载了加号运算符。这个函数接受一个`Complex`类型的参数`other`,并返回一个新的`Complex`对象,该对象是将当前对象和`other`对象相加的结果。
我们现在可以使用这个运算符,例如:
```cpp
Complex a(1.0, 2.0);
Complex b(3.0, 4.0);
Complex c = a + b; // 调用重载的加号运算符
```
以上代码将创建两个`Complex`对象`a`和`b`,并将它们相加,结果存储在`c`中。
需要注意的是,重载运算符函数也可以是类的成员函数,也可以是全局函数。具体使用哪种方式取决于重载的运算符和你的需求。
阅读全文