问题 单项选择题

设有以下定义和程序: #include <iostream.h> class A1 { public:void showl(){ cout<<"class A1"<<end1;} }; Class A2 : public A1 { public:void show2(){ cout<<"Class A2"<<end1;} }; Class A3 : protected A2 { public:void show3(){ cout<<”Class A土”<<end1;} }; void main() {A1 obj1;A2 obj2;A3 obj3; } 则以下不合语法的调用语句是( )。

A.obj1.show1();

B.obj2.show1();

C.obj3.show1();

D.obj2.show2();

答案

参考答案:C

解析: C++中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2是A1的公有派生类,A3是A2的保护派生类,所以类A1的成员函数showl()在类A3中呈现保护属性,不能通过A3类的对象访问。

填空题
单项选择题