若有如下程序: #include<iostream> using namespace std; class TestClass1 { private: int a; public: TestClass1(in

admin2010-12-16  28

问题 若有如下程序:    #include<iostream>    using namespace std;    class TestClass1    {    private:    int a;    public:    TestClass1(int i)    {    a=i;    }    void disp()    {    cout<<a<<",";    }    };    class TestClass2    {    private:    int b;    public:    TestClass2(int j)    {    b=j;    }    void disp()    {    cout<<b<<",";    }    };    class TestClass3:public TestClass2,public TestClass1    {    private:    int c;    public:    TestClass3(int k):TestClass1(k-2),TestClass2(k+2)    {    c=k;    }    void disp()    {         TestClass1::disp();         TestClass2::disp();    cout<<c<<endl;    }    };    int main()    {    TestClass3 obi(10);    obj.disp();    return 0;    }    程序执行后的输出结果是(    )。

选项 A、10,10,10
B、10,12,14
C、8,10,12
D、8,12,10

答案D

解析 由主函数mian入手,首先定义TestClass3的对象obj,参数为10。其中TestClass3为TestClass1和TestClass2的派生类。然后调用disp成员函数。Disp中首先执行“TestClass1::disp();”,然后执行“TestClass2::disp();”,最后执行输出语句“cout<<c<<endl;”。TestClass1(k-2),所以第一个输出8,TestClass2(k+2),第二个输出12,最后一个本类中的输出即为10。
转载请注明原文地址:https://kaotiyun.com/show/LIVp777K
0

最新回复(0)