35.C++增1减1运算符的重载

本文详细介绍了如何在C++中使用运算符“++”重载为类的成员函数和友元函数,包括前置++n和后置n++的操作方式,通过实例代码演示了实现过程。
//使用运算符“++”重载为类的成员函数
#include <iostream>
class Number
{
public:
    Number(int n=0)//构造函数
    {
        num=n;
    }
    int operator++();//前置++n
    Number operator++(int );//后置n++
    void print()
    {
        std::cout<<"num="<<num<<std::endl;
    }
private:
    int num;
};
//前置++n
int Number::operator++()
{
    ++num;
    return num;
}
//后置n++
Number Number::operator++(int)//不用给出形参名
{
    Number temp;
    temp.num=num++;
    return temp;
}
int main(int argc, const char * argv[])
{
    Number m(20);
    Number n(30),p;
    int k=++m;
    std::cout<<k<<std::endl;//21
    
    m.print();//num=21
    
    p=n++;
    p.print();//num=30
    n.print();//num=31
    return 0;
}
//使用运算符“++”重载为类的友元函数
#include <iostream>
class Number
{
public:
    Number(int n=0)//构造函数
    {
        num=n;
    }
    friend int operator++(Number& x);//前置++n
    friend Number operator++(Number&  ,int);//后置n++
    void print(){ std::cout<<"num="<<num<<std::endl;}
    
private:
    int num;
};
int operator++(Number& x)//前置++n
{
    ++x.num;
    return x.num;
}
Number operator++(Number& x,int )
{
    Number temp;
    temp.num=x.num++;
    return temp;
}

int main(int argc, const char *argv[])
{
    Number m(20);
    Number n(30),p;
    int k=++m;
    std::cout<<k<<std::endl;//21
    m.print();
    
    p=n++;
    p.print();
    n.print();
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值