问题
单项选择题
有以下程序: #include<iostrearn> using namespace std; class sample { private: int x; static int y; public: sample (int A) ; static void print (sample s); }; sample::sample(int A) {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。