C++中前置++ 与后置++是不同的,具体不同,下面代码中有体现。
在后置++里,人为添加一个参数(int),主要是为了区别前置++,这个参数不会被使用。这里的int是个哑元。
一个函数的参数 只有类型 没有名字 则这个参数称之为哑元。
class A { public: A& operator++()//前置++,返回的是引用 { data +=1; return *this; }
const A operator++(int)//后置++,返回的是值 { A old(*this); ++(*this); //调用前置++ return
old; } //从代码可以看出,前置++比后置++效率高,不用产生临时对象,不用调用拷贝构造函数 int data; }; ostream&
operator<<(ostream& os,A& a) { os<<a.data<<endl; return os; } int _tmain(int
argc, _TCHAR* argv[]) { A a={1}; cout<<a;//1 A b=++a; cout<<b;//2 cout<<a;//2 A
c=a++; cout<<c;//2 cout<<a;//3 return 0; }

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信