设有以下定义和程序: #inc1ude<iostream.h> c1ass TestClass1 { pubitic: void showl0 { cout<<"TestClass1"<<end1;

admin2019-03-05  25

问题 设有以下定义和程序:
    #inc1ude<iostream.h>
    c1ass TestClass1
    {
    pubitic:
    void showl0
    {
    cout<<"TestClass1"<<end1;
        }
    };
    c1ass TestClass2:TestClass1
    {
    public:
    void show2()
    {
    cout<<" TestClass2"<<end1;
        }
    };
    c1ass TestClass3:protected TestClass2
    {
    public:
    void show3()
    {
    cout<"TestClass 3"<<end1;
        }
    };
    void main()
    {
    TestClass1 obj1;
    TestClass2 0bj2;
    TestClass3 0bj3;
    }
    则以下不合语法的调用语句是(    )。

选项 A、objl.show1();
B、obj2.show1();
C、obj3.show1();
D、obj2.show2();

答案C

解析 TestClass1为TestClass2的私有基类,所以派生类TestClass2中继承过来的showl0为私有的。TestClass3为TestClass2的受保护派生类。所以TestClass3定义的对象不能访问TestClass中的showl()。
转载请注明原文地址:https://kaotiyun.com/show/0vAp777K
0

最新回复(0)