以下程序的执行结果为( )。 #include<iostream.h> class Sample { int n; public: Sample(int i){n=i;} operator++(){n++;}//前缀重载运算符 operator++(

admin2021-09-05  40

问题 以下程序的执行结果为(    )。
#include<iostream.h>
class Sample
{
int n;
public:
Sample(int i){n=i;}
operator++(){n++;}//前缀重载运算符
operator++(int){n+=2;}//后缀重载运算符
void disp()
{
cout<<"n="<<n<<endl:
}
};
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=4n=3。
转载请注明原文地址:https://jikaoti.com/ti/85c0FFFM
0

最新回复(0)