一元运算符重载
- C++运算符只对基础类型进行了运算定义,如果是自己定义的类型例如类和结构体,这就需要对运算符进行重载,编写适合的方法
- C++运算符的重载形式
- 成员函数:在类中编写,省略了左操作数,隐含this指针
- 友元函数:为了能够操作类中的私有属性,所以需要加上友元。
- 运算符重载是一个函数。
- 操作数即输入实参
- 含有返回值
- 一元运算符++/–
- 前置++
- 实现形式
- 前置++
//friend function
A& operator++(A& a) { a.dat += 20; return a; }
//member function
A& operator++( )
{
this->dat += 20;
return a;
}
-
- 后置++
- 实现形式
-
//friend function A operator++(A&a, int) { A c = a; a.dat += 10; return c; } //member function A operator++( int) { A c = a; this->dat += 10; return c; }
后置++是先使用在++。所以需要加入一个变量
- 为了区分重载函数,不能以返回值作为判断标准,所以加入了一个没用的占位符int作为判断标准
- 后置++