问题 单项选择题

设有以下定义和程序: #include<iostream.h> class TestClass1 { public: void show1() { cout<<"TestClass1"<<end1; } }; class TestClass2:TestClass 1 { public: void show2() { tout<<"TestClass2"<<end1; } }; class TestClass3:protected TestClass2 { public: void show3() {tout<<"TestClass3"<<end1; } }; void main() { TestClass1 obj1; TestClass2 obj2; TestClass3 obj3; } 则以下不合语法的调用语句是( )。

A.obj1.show1();

B.obj2.show1();

C.obj3.show1();

D.obj2.show2();

答案

参考答案:C

解析: TestClass1为TestClass2的私有基类,所以派生类TestClass2中继承过来的show1()为私有的。TestClass3为TestClass2的受保护派生类。所以TestClass3定义的对象不能访问TestClass中的show1()。

单项选择题
多项选择题