若有以下程序: #include 〈iostream〉 using namespace std; class sample { private: int n; public: sample(){}

admin2010-03-29  21

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

答案4

解析 本题考核this指针的应用。本程序中sample类定义了一个addvalue非静态成员函数。addvalue()函数的原型是:void addvalue(sample *this,int m);,该函数的第1个参数是执行该类对象的一个指针,即this指针。由于这个参数是系统隐含的,所以在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过this访问这一参数。程序的最后输出结果是15。
转载请注明原文地址:https://kaotiyun.com/show/zRjp777K
0

最新回复(0)