单选题 下面程序中对一维坐标点类Point进行运算符重载 #include<iostream> using namespace std; class Point{ public: Point(int val){x=val;} Point&operator++(){x++;rcturn*this;} Point operator++(int){Point old=*this;++(*this);return old;} Int GetX()const{return x;} private: int x; }; hat main() { Point a(10); cout<<(++a).GetX(); cout<<a++.GetX(); return 0; } 编译和运行情况是( )。
【正确答案】 B
【答案解析】解析:此题考查的是重载增1运算符“++”。此题中,Point&operator++()重载的是前缀形式,而Point operator++(int)重载的是后缀形式。所以主函数中第1条输出语句输出11,此时a.x的值为11:第2条输出语句,首先创建了一个P0int对象old保存自身,然后通过语句++(*this);调用前缀++的重载函数,因为返回值是改变前保存的old对象,故仍输出11。