C++-运算符重载

#include  < stdio.h >
#include 
< iostream.h >


/*重载 -*/
class  myOperator
{
private:
    
int num;
public:
    myOperator(
int);
    
int operator -(const myOperator&); //注意它的返回值
    void Show();
}
;

myOperator::myOperator(
int  num)
{
    
this->num = num;
}


int  myOperator:: operator   - ( const  myOperator  & object )
{
    
this->num = this->num - object.num;
    
return this->num;
}


void  myOperator::Show()
{
    cout
<<"结果="<<this->num<<endl;
}


void  main()
{
    myOperator mo(
100);    
    mo 
- 50;
    
//int a = mo - 200;
    mo.Show();
}




/*重载++(前/后缀)*/
class  myOperator
{
private:
    
int num;
public:
    myOperator(
int);
    myOperator 
operator ++(); //+号在前(注意它的返回值)
    myOperator operator ++(int); //+号在后,int没有特别含义,只是用来区分前后/后缀
    void Show();
}
;

myOperator::myOperator(
int  num)
{
    
this->num = num;
}


myOperator myOperator::
operator   ++ ()
{
    
++this->num;
    
return this->num;
}


myOperator myOperator::
operator   ++ ( int )
{
    
return this->num;
    
++this->num;    
}


void  myOperator::Show()
{
    cout
<<"结果="<<this->num<<endl;
}


void  main()
{
    myOperator mo(
100);
    
//mo++;
    ++mo;
    mo.Show();
}




/*重载 =*/
class  myOperator
{
private:
    
int num;
public:
    myOperator(
int);
    
int operator =(const myOperator&); //注意它的返回值
    void Show();
}
;

myOperator::myOperator(
int  num)
{
    
this->num = num;
}


int  myOperator:: operator   = ( const  myOperator  & object )
{
    
this->num = object.num;
    
return this->num;
}


void  myOperator::Show()
{
    cout
<<"结果="<<this->num<<endl;
}


void  main()
{
    myOperator mo(
100);
    mo 
= 200;
    mo.Show();
}




/*重载 ==*/
class  myOperator
{
private:
    
int num;
public:
    myOperator(
int);
    
int operator == (const myOperator&); //注意它的返回值
    void Show();
}
;

myOperator::myOperator(
int  num)
{
    
this->num = num;
}


int  myOperator:: operator   ==  ( const  myOperator  & object )
{    
    
return this->num == object.num;
}


void  myOperator::Show()
{
    cout
<<"结果="<<this->num<<endl;
}


void  main()
{
    myOperator mo(
100);
    
int a = 100;
    
if(mo == a)
        cout
<<"相等"<<endl;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值