若有如下程序: #include <iostream> using namespaces std; int s=0; class sample, { static int n; public:

admin2010-03-29  24

问题 若有如下程序:    #include    <iostream>    using namespaces std;    int s=0;    class sample,    {       static int n;    public:       sample(int i)       {          n=i;       }       static void add()       {          s+=n;       }    };    int sample::s=0;    int main()    {       sample a(2),b(5);       sample::add();       cout<<s<<end1;       return  0;    }    程序运行后的输出结果是(    )。

选项 A、2
B、5
C、7
D、3

答案2

解析 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数add(),并在类的构造函数中给类私有静态数据成员n赋值。
   在主函数中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行“sample::add();”使全局变量s=5。
转载请注明原文地址:https://kaotiyun.com/show/nWjp777K
0

最新回复(0)