问题 单项选择题

分析下面程序,该程序的运行结果是( )。
#include<iostream.h>
class TestClass

public;
static int m;
TestClass ()

m++;

TestClass(int n)

m=n;

static void test()

m++;

;
int TestClass::m=0;
void main()

TestClass A;
TestClass B(3);
A.test();
TestClass::test();
tout<<"m="<<B.m<<end1;

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。

单项选择题
单项选择题