分析下面程序,该程序的运行结果是( )。 #include<iostream.h> class TestClass { public; static int m; TestClass () { m++;

admin2012-01-20  34

问题 分析下面程序,该程序的运行结果是(    )。    #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。
转载请注明原文地址:https://kaotiyun.com/show/OCVp777K
0

最新回复(0)