选择题   分析下面程序,该程序的运行结果是______。
    #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();
    cout<<'m='<<B.m<<endl;
    }
 
【正确答案】 C
【答案解析】由主函数main入手,首先定义TestClass对象A,B;对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“static int m;”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。