问题 单项选择题

以下程序的执行结果为( )。 #include<iostream.h> class Sample { int n; public: Sample(int i){n=i;} operator++(){n++;} //前缀重载运算符 operator++(int){n+=2;} //后缀重载运算符 void disp() { cout<<"n="<<n<<end1; } }; void main() { Sample A(2),B(2); A++; ++B; A.disp(); B.disp(); }

A.n=4 n=3

B.n=1 n=2

C.n=3 n=4

D.n=5 n=6

答案

参考答案:A

解析: 此题考查的是“++”运算符的重载。为了区分前缀和后缀运算符,规定:重载后缀运算符时必须多一个虚拟参数:int。本题中,A(2)首先给n赋值2,语句A++,调用的是后缀运算符重载语句,使得n加2变为4。B(2)首先给n赋值2,然后语句++B,调用前缀运算符重载函数,使得n加1。因此最终的输出结果是n=4 n=3。

名词解释
多项选择题