问题 单项选择题

若有以下程序: #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。

单项选择题 B型题
选择题