单选题 下面程序中对一维坐标点类Point进行运算符重载:
#include<iostream>
using namespace std;
class Point{
public:
Point(int val) {x=val;}
Point& operator++(){x++; return*this;}
Point operator++(int) {Point old=*this, ++(*this); return old;}
int GetX() const{return x;}
private:
int x;
};
int main()
{
Point a(10);
cout<<(++a).GetX();
cout<<a++.GETX();
return 0;
}
编译和运行情况是______。
【正确答案】 B
【答案解析】[解析] Point& operator++()是对前置++的重载,返回的是当前值,Point& operator++(int)是对后置++的重载,返回的是++前的值,故输出均为11。