自增运算符的重载

来源:互联网 发布:淘宝这十年 pdf 编辑:程序博客网 时间:2024/05/23 11:53

运算符的重载有两种方法:

1、通过成员函数来重载

2、通过友元函数进行重载

重载的一个重要的特点:

1、成员函数参数的个数 = 几目运算符 - 1;

例如: = ,+,+=,这些运算符都是双目运算符,所以类的成员函数的参数是1.

2、友元函数参数的个数 = 几目运算符。


一般说来,单目运算符最好被重载为成员函数,双目运算符被重载为友元函数。

下面是前置自增运算符和后置自增运算符的重载。

#include<iostream>using namespace std;class A{public:A(int i):count(i){}A& operator++();A& operator++(int);void print() const{cout<<"count = "<<count<<endl;}private:intcount;};A& A::operator++(){cout<<"调用前置运算符\n";++count;return *this;}A& A:: operator++(int){cout<<"调用后置运算符\n";count++;return *this;}int main(){A a(5);a++;a.print();cout<<"\n";++a;a.print();return 0;}


程序执行的结果是:



至于为什么重载函数的返回时是引用?

答:再返回的时候,可以避免创建一个*this的副本。