问题
单项选择题
以下程序的执行结果为( )。
#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。