问题 单项选择题

有如下程序:
#include<iostream>
using namespace 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<<endl;
return 0;

程序运行后的输出结果是

A.2

B.5

C.7

D.3

答案

参考答案:B

解析: 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员n赋值。在主函数main中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象 b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行sample::add()使全局变量s=5。

单项选择题 A3/A4型题
单项选择题