C++ 如何重载前置++和后置++运算符
注意一下几点:? 1、前置++重载时没有参数,而后置++重载时有参数。不会使用其参数,仅仅是区分用。可以理解为前置++后面有参数了,所以不需要参数? 2、前置++需要返回引用,因为重载自加运算符后可以返回对象的引用, 以方便在表达式中连续使用。而后置++返回的不是引用,所以不能进行连续使用。 3.后置运算符返回的值是temp,需要注意。因为是后加。 实现代码如下: #include using namespace std; class point{ public: point(int a,int b):x(a),y(b){} point& operator++(){//前置运算符,需要引用返回,不需要参数。返回自增后的值,且返回的是一个左值 x++; y++; return *this; } point operator++(int){//后置++,不需要引用返回,需要参数区分。返回自增前的值,且返回的是一个右值 point temp(x,y); x++; y++; //cout<<"x1 = "< return temp; } void show(){ cout<<"x = "< } private: int x; int y; }; int main(){ point p(2,3); p.show(); p++; p.show(); ++p; p.show(); return 0; } 运行结果如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |