首页 > 其他 > 详细

自考新教材-p169

时间:2020-02-04 14:18:11      阅读:50      评论:0      收藏:0      [点我收藏+]

源程序:

#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;
}

 运行结果:

技术分享图片

 

自考新教材-p169

原文:https://www.cnblogs.com/duanqibo/p/12259154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!