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

admin2010-03-29  26

问题 有以下程序:    #include <iostream>    using namespace std;    class sample    {    private:       int n;    public:       sample(){}       sample (int m)       {          n=m;       }       sample add(sample s1,sample s2)       {          this->n=s1.n+s2.n;          return  (*this);       }       void disp()       {          cout<<"n="<<n<<end1;       }    };    int main ()    {       sample s1(10) ,s2(5),s3;       s3.add(s1,s2);       s3.disp();       return 0;    }    程序运行后,输出的结果是(    )。

选项 A、n=10
B、n=5
C、n=20
D、n=15

答案8

解析 本题考核this指针的应用。本程序中,sample类的add成员函数中使用了this指针,this指针指向当前对象自身,该成员函数中的语句“this->n=s1.n+s2.n;”用于修改当前对象的数据成员n的值,语句“return(*this);”用于返回当前对象自身,即对当前对象进行了修改。 对于主函数调用add()成员函数语句“s3.add(s1,s2);”。此时,this指针指向的是对象 s3,执行该语句前,s3的数据成员n未赋值,执行完该语句后,就修改了s3的私有成员n的值,使其为15。
转载请注明原文地址:https://jikaoti.com/ti/XKW0FFFM
0

最新回复(0)