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

admin2019-06-07  27

问题 分析下面程序,该程序的运行结果是(     )。
    #inc1ude<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<<end1;
    }

选项 A、m=3
B、m=4
C、m=5
D、m=6

答案C

解析 由主函数mam入手,首先定义TestClass对象A,B;对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“staticint m,”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。
转载请注明原文地址:https://kaotiyun.com/show/Jm8p777K
0

最新回复(0)