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

来源:互联网 发布:信息数据采集情况汇报 编辑:程序博客网 时间:2024/06/06 07:44
//使用运算符“++”重载为类的成员函数#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;};//前置++nint 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;}


原创粉丝点击