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