考察前置++运算符设置为友元函数,这题的坑在于,返回值是不是对象的引用,形参也不是对象的引用,导致自增离开了作用域以后就不在有任何效果。
#include <iostream> using namespace std; class C{ private: int xx,yy; public: C(int x,int y):xx(x),yy(y) {} friend C operator++(C); void print() {cout << xx << "," << yy << endl;} }; C operator++(C c){ ++c.xx; ++c.yy; return c; } int main(){ C aa(10,20); aa.print(); for(int i=0;i<5;i++) ++aa; aa.print(); }
结果
10,20 10,20
标签:易错,真题,19,前置,xx,运算符,++,int From: https://www.cnblogs.com/uacs2024/p/18089511