选择题   下面程序中对一维坐标点类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
【答案解析】此题考查的是重载增1运算符“++”。此题中,Point&operator++()重载的是前缀形式,而Point operator++(int)重载的是后缀形式。所以主函数中第1条输出语句输出11,此时a.x的值为11;第2条输出语句,首先创建了一个Point对象old保存自身,然后通过语句++(*this);调用前缀++的重载函数,因为返回值是改变前保存的old对象,故仍输出11。