A-A+

设有以下定义和程序: #include<iostream.h> classA1 { publ

2022-08-05 22:14:37 问答库 阅读 172 次

问题详情

设有以下定义和程序: #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类的对象访问。

考点:定义,程序