问题 单项选择题

下面程序对一维坐标点类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( )eonst t return x;} private: int x; }; int main( ){ Point a(10); cout<<(++A) .GetX( ); cout<<a++.GetX( ); return 0; } 编译和运行情况是

A.运行时输出1011

B.运行时输出1111

C.运行时输出1112

D.编译有错

答案

参考答案:B

解析: Point& operator++( ){x++;return*this;}是在成员函数运算符重载单目运算符(前缀方式),Point operator++(int){Point old=*this;++(*t11is);return old;}定义运算符的成员函数重载++(后缀方式),所以均打印11、11。

单项选择题 共用题干题
问答题 简答题