重载减法
时间: 2023-11-28 08:50:58 浏览: 36
重载减法运算符可以通过定义成员函数或非成员函数来实现。假设我们有一个名为`MyClass`的类,以下是两种方式的示例:
1. 通过定义成员函数重载减法运算符:
```cpp
class MyClass {
public:
int val;
MyClass operator-(const MyClass& other) const {
MyClass result;
result.val = val - other.val;
return result;
}
};
```
在上面的代码中,我们定义了一个`operator-`成员函数,它接受一个`MyClass`类型的对象作为参数,并返回一个新的`MyClass`对象,其值为当前对象的值减去另一个对象的值。
2. 通过定义非成员函数重载减法运算符:
```cpp
class MyClass {
public:
int val;
};
MyClass operator-(const MyClass& lhs, const MyClass& rhs) {
MyClass result;
result.val = lhs.val - rhs.val;
return result;
}
```
在上面的代码中,我们定义了一个名为`operator-`的非成员函数,它接受两个`MyClass`类型的对象作为参数,并返回一个新的`MyClass`对象,其值为第一个对象的值减去第二个对象的值。
无论是哪种方式,我们都可以像下面这样使用重载后的减法运算符:
```cpp
MyClass a{ 10 };
MyClass b{ 5 };
MyClass c = a - b; // 使用重载后的减法运算符
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)