书目《现代C.程序设计》
要重载一个操作符,必须写一个特殊的操作符函数,该函数是类的成员函数之一,当该操作符与该类的对象一起使用时,它完成指定任务。
一般形式是:返回类型 operator 符号(参数表){}
- 例1:一元操作符的重载
#include<iostream.h>
class Counter
{
private:
int count;
public:
Counter() { count = 0; }
void operator ++ () { count++; }
void operator -- () { count--; }
};
void main()
{
Counter MyCount;
++MyCount;//写成MyCount++时,编译器会告警,并用前缀形式代替后缀形式
}
- 例2:二元操作符重载
#include<iostream.h>
class Counter
{
public:
int count;
public:
Counter() { count = 0; }
Counter(int a) { count = a; }
Counter operator + (Counter N)
{
Counter res;
res.count = count + N.count;
return res;
}
};
void main()
{
Counter CountA(10), CountB(20), CountC;
CountC = CountA + CountB;//这里调用的是CountA的+重载
}