若有以下程序: #include using namespace std; class TestClass1 { public: TestClass1() { x=0: } i

admin2012-12-29  51

问题 若有以下程序:
    #include
    using namespace std;
    class TestClass1
    {
    public:
    TestClass1()
    {
    x=0:
    }
    int x;
    };
    class TestClass2:virtual public TestClass 1
    {
    public:
    TestClass2()
    {
    x=10;
    }
    };
    class TestClass3:virtual public TestClass 1
    {
    public:
    TestClass3()
    {
    x=20;
    }
    };
    class TestClass4:public TestClass2,protected TestClass3
    {    };
    intmain()
    {
    TestClass4 obj;
    cout<    return 0;
    }
    该程序运行后的输出结果是__________。

选项

答案20

解析 主函数中定义TestClass4的对象obj。TestClass4虽然公有继承于TestClass2,但是x在其中为私有,所以无法访问。TestClass4保护继承于TestClass3,TestClass3中的x=20为公有成员数据,对象obj可以访问这个数据,即输出为20。
转载请注明原文地址:https://kaotiyun.com/show/gMVp777K
0

最新回复(0)