问题
单项选择题
若有以下程序:
#include 〈iostream〉
using namespace std;
class sample
private:
int n;
public:
sample()
sample(int m)
n=m;
void addvalue(int m)
sample s;
s.n=n+m;
*this=s;
void disp()
cout〈〈"n="〈〈n〈〈end1;
;
int main()
sample s(10);
s.addvalue(5);
s.disp();
return 0;
程序运行后的输出结果是( )。
A.n=10
B.n=5
C.n=15
D.n=20
答案
参考答案:C
解析: 本题考核this指针的应用。本程序中sample类定义了一个addvalue非静态成员函数。addvalue()函数的原型是:void addvalue(sample *this,int m);,该函数的第1个参数是执行该类对象的一个指针,即this指针。由于这个参数是系统隐含的,所以在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过this访问这一参数。程序的最后输出结果是15。