问题 单项选择题

有以下程序:
#include<iostrearn>
using namespace std;
class sample

private:
int x;
static int y;
public:
sample (int

A.;
static void print (sample s);

sample::sample(intA)

x=a;
y+=x;

void sample::print(sample s)

cout<<"x"<<s.x<<",y="<<y<<end1;

int sample::y=0;
int main()

sample s1(10);
sample s2(20);
sample::print(s2);
return 0;

程序运行后的输出结果是A) x=10,y=20

B.x=20,y=30

C.x=30,y=20

D.x=30,y=30

答案

参考答案:B

解析: 本题考核静态数据成员和静态成员函数的应用。类sample中定义两个私有成员x和y,其中y为静态数据成员。并定义函数print()为静态成员函数。在主函数中,定义对象s1(10)时,通过构造函数使对象s1的私有成员x=10,静态数据成员y=10。定义s2(20)时,通过构造函数使对象s2的私有成员x=20,静态数据成员y=10+20=30。程序最后调用静态成员函数print输出对象s2的私有成员x的值20,对象s1、s2共享的静态数据成员y的值30。

单项选择题
配伍题 B型题