c重载运算符
时间: 2023-08-13 15:20:54 浏览: 36
C++中可以通过重载运算符来改变运算符对于自定义类型的行为。比如我们可以重载"+"运算符来实现两个自定义类型对象的相加操作。
下面是重载"+"运算符的示例代码:
```c++
class MyClass {
public:
int a;
MyClass operator+(const MyClass& other) {
MyClass result;
result.a = this->a + other.a;
return result;
}
};
int main() {
MyClass obj1, obj2, obj3;
obj1.a = 1;
obj2.a = 2;
obj3 = obj1 + obj2; //两个MyClass类型对象相加
cout << obj3.a << endl; //输出3
return 0;
}
```
在上面的代码中,我们通过重载"+"运算符来实现了两个MyClass类型对象的相加操作。注意,重载运算符的函数名必须是operator后面跟着要重载的运算符,而且需要返回一个对应的类型的值。在函数体内,我们可以像普通函数一样实现自定义类型相应运算符的操作。
相关问题
c++重载运算符
C++中可以对很多运算符进行重载,例如加减乘除、赋值、比较等等。重载运算符可以使得程序更加简洁、易读、易维护。
重载运算符的一般语法为:
```cpp
返回类型 operator 运算符(参数列表) {
// 函数体
}
```
其中,`operator`关键字表明这是一个运算符重载函数,`运算符`指定要重载的运算符,`参数列表`指定重载运算符的参数,`返回类型`指定运算符重载函数的返回类型。
例如,重载加法运算符的代码如下:
```cpp
class Complex {
public:
Complex(double r, double i) : real(r), imag(i) {}
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imag + other.imag);
}
private:
double real;
double imag;
};
```
在上述代码中,我们将`+`运算符重载为一个成员函数`operator+`,其参数为另一个`Complex`对象,返回值也是一个`Complex`对象。在函数体中,我们实现了两个复数相加的操作,返回一个新的`Complex`对象。
使用重载运算符时,可以像使用内置类型一样使用自定义类型。例如:
```cpp
Complex a(1, 2);
Complex b(3, 4);
Complex c = a + b;
```
在上述代码中,`a + b`就是一个使用重载加法运算符的表达式,其结果被赋值给了`c`对象。
vector重载运算符
在 C++ 中,我们可以重载运算符,包括重载向量(vector)的运算符。下面是一些常见的向量运算符重载示例:
1. 重载加法运算符(+):
```cpp
vector operator+(const vector& v1, const vector& v2) {
vector result;
// 实现向量相加的逻辑
return result;
}
```
2. 重载减法运算符(-):
```cpp
vector operator-(const vector& v1, const vector& v2) {
vector result;
// 实现向量相减的逻辑
return result;
}
```
3. 重载乘法运算符(*):
```cpp
vector operator*(const vector& v, double scalar) {
vector result;
// 实现向量与标量相乘的逻辑
return result;
}
```
4. 重载除法运算符(/):
```cpp
vector operator/(const vector& v, double scalar) {
vector result;
// 实现向量与标量相除的逻辑
return result;
}
```
这些只是一些示例,你可以根据需要自定义其他运算符的重载。请注意,运算符重载应该根据具体的语义进行实现,以确保正确性和可读性。