c++ 一元运算符重载
时间: 2023-11-03 20:57:15 浏览: 60
c语言支持一元运算符重载。例如,可以通过重载前置和后置递增运算符(++)和递减运算符(--)来改变对象的值。对于前置运算符重载,函数的参数列表为空;对于后置运算符重载,函数的参数列表为int类型。下面是一个示例:
```c
class Clac {
public:
Clac();
Clac(int, int);
Clac operator++(); // 前置递增运算符重载
Clac operator++(int); // 后置递增运算符重载
private:
int x, y;
};
Clac Clac::operator++() {
++x;
++y;
return *this;
}
Clac Clac::operator++(int) {
Clac temp(*this);
++x;
++y;
return temp;
}
```
相关问题
一元运算符
一元运算符是指只需要一个操作数就能进行运算的运算符。常见的一元运算符有正号(+)、负号(-)、逻辑非(!)等。
在 C++ 中,可以通过重载类的成员函数或全局函数来定义自己的一元运算符。一元运算符重载函数的函数名必须以 operator 开头,后面紧跟运算符的符号。
例如,重载正号运算符的成员函数可以定义为:
```c++
class MyClass {
public:
MyClass operator+() const; // 重载正号运算符
};
```
或者定义为全局函数:
```c++
class MyClass {
friend MyClass operator+(const MyClass& obj); // 重载正号运算符
};
```
需要注意的是,一元运算符重载函数可以是类的成员函数,也可以是全局函数,但是它们的参数个数必须为一个。此外,一元运算符重载函数可以是 const 成员函数,也可以是非 const 成员函数,具体取决于运算符所作用的对象是否需要改变。
c++ 重载+运算符
C++ 中的运算符重载是指给已有的运算符赋予新的功能或含义。通过重载运算符,我们可以定义自定义的数据类型在使用运算符时的行为。
要重载一个运算符,需要使用特定的函数名和语法。以下是一些常见的运算符以及对应的函数名:
- 一元运算符:重载时只需要一个参数
- 一元正号:`+` ==> `operator+`
- 一元负号:`-` ==> `operator-`
- 逻辑非:`!` ==> `operator!`
- 二元运算符:重载时需要两个参数
- 加法:`+` ==> `operator+`
- 减法:`-` ==> `operator-`
- 乘法:`*` ==> `operator*`
- 除法:`/` ==> `operator/`
- 取余:`%` ==> `operator%`
- 等于:`==` ==> `operator==`
- 不等于:`!=` ==> `operator!=`
- 赋值运算符:重载时需要两个参数
- 赋值:`= ` ==> `operator=`
- 加法赋值:`+=` ==> `operator+=`
- 减法赋值:`-=` ==> `operator-=`
- 乘法赋值:`*=` ==> `operator*=`
- 除法赋值:`/=` ==> `operator/=`
除了以上列举的运算符,C++ 还提供了其他一些运算符可以进行重载。在重载运算符时,需要注意运算符的语义和预期行为,以及遵循一些重载运算符的约定和规则。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![xmind](https://img-home.csdnimg.cn/images/20210720083646.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)