有以下程序:
#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。