问题
单项选择题
设有以下定义和程序:
#include<iostream.h>
classA1
public:
void show1()
cout<<"classA1”<<end1;
;
classA2:public A1
public:
void show2()
cout<<"classA2"<<end1;
;
class A3:protected A2
public:
voidshow3()
cout<<"class A1”<<end1;
;
void main()
A1obj1;
A2obj2;
A3obj3;
则以下不合语法的调用语句是
A.obj1.show1();
B.obj2.show1();
C.obj3.show1();
D.obj2.show2();
答案
参考答案:C
解析: 本题考核派生类的使用以及访问权限问题。C++中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2是A1的公有派生类,A3是 A2的保护派生类,所以类A1的成员函数show1()在类A3中呈现保护属性,不能通过A3类的对象访问。