C++运算符重载实现的过程,代码
#include <iostream>
using namespace std;
class fun
{
private:
int num;
public:
fun(){}
fun(int a):num(a){} //有参构造
//定义显示函数
void show()
{
cout<<num<<endl;
}
//定义全局函数实现加法运算符重载
friend const fun operator+(const fun &a,const fun &b);
//成员函数实现减法运算符重载
const fun operator-(const fun &a)const
{
fun c;
c.num=this->num-a.num;
return c;
}
//成员函数实现关系运算符的重载
bool operator>(const fun &a)const
{
return this->num>a.num;
}
//成员函数实现赋值运算符的重载
fun & operator=(const fun &a)
{
this->num=a.num;
return *this;
}
//成员函数实现后自增运算符的重载
fun operator++(int)
{
this->num++;
return *this;
}
};
const fun operator+(const fun &a,const fun &b)
{
fun c;
c.num=a.num+b.num;
return c;
}
int main()
{
fun a(101); //有参构造
a.show(); //显示函数
fun b(2); //有参构造
fun c=a+b; //加法运算符
fun d=a-b; //减法运算符
a++; //后自增运算符
if(a>b) //逻辑>运算符
{
cout<<"a>b"<<endl;
}else
{
cout<<"a<b"<<endl;
}
a.show();
b.show();
c.show();
d.show();
d=a; //赋值运算符
d.show();
return 0;
}
运行结果