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

技术
©2020 ioDraw All rights reserved
实现LRU Cache(java版)一个学生关于鸿蒙系统的一些看法Keras输出模型的各层的结果python中list和str互相转换flutter学习--搜索框抖音比较火的 黑客帝国-代码雨(免费送)浙大数据结构期中考试试题python计算macd的方法k8s删除pod使用函数实现两个数的交换(C语言)