单选题
分析下面程序,该程序的运行结果是( )。 #include<iostream.h> class TestClass{ public: static int m; TestClass () { m++; } TestClass(int n) { re=n; } static void test() { m++; } }; int TestClass::m=0; void main() { TestClass A; TestClass B(3); A.test(); TestClass::test(); cout<<''m''=''<<B.m<<endl; }
A、
m=3
B、
m=4
C、
m=5
D、
m=6
【正确答案】
C
【答案解析】
解析:由主函数main入手,首先定义TestClass对象A,B;对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“static int m;”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。
提交答案
关闭