• 自考新教材-p169


    源程序:

    #include<iostream>
    using namespace std;

    class CDemo
    {
    private:
    int n;
    public:
    CDemo(int i=0):n(i){}
    CDemo & operator++(); //用于前置形式
    CDemo operator++(int); //用于后置形式
    operator int() {return n;}
    friend CDemo & operator--(CDemo &);
    friend CDemo operator--(CDemo &,int);
    };

    CDemo & CDemo::operator++() //前置++
    {
    n++;
    return *this;
    }

    CDemo CDemo::operator++(int k) //后置++,多一个参数
    {
    CDemo tmp(*this); //记录修改前的对象
    n++;
    return tmp; //返回修改前的对象
    }

    CDemo & operator--(CDemo & d) //前置--
    {
    d.n--;
    return d;
    }

    CDemo operator--(CDemo & d,int) //后置--
    {
    CDemo tmp(d);
    d.n--;
    return tmp;
    }

    int main()
    {
    CDemo d(10);
    cout<<(d++)<<","; //等价于"d.operator++(0);"输出10
    cout<<d<<","; //输出11
    cout<<(++d)<<","; //等价于"d.operator++();"输出12
    cout<<d<<","; //输出12
    cout<<(d--)<<","; //等价于"d.operator--(0);"输出12
    cout<<d<<","; //输出11
    cout<<(--d)<<","; //等价于"d.operator--();"输出10
    cout<<d<<","<<endl; //输出10
    return 0;
    }

     运行结果:

  • 相关阅读:
    格式布局
    hive UDAF源代码分析
    HIVE自定义函数 UDF
    HIVE函数UDAF 最大值
    牛顿法求平方根 scala
    mongoDB
    java类的加载机制
    类的加载过程
    Redis学习手册(目录)
    我与小娜(05):变换时空,重返北京
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12259154.html
Copyright © 2020-2023  润新知