问题 单项选择题

下面程序的执行结果为#include"iostream"using namespace std;class A{ int a; public: void Seta(int x){a=x;} void Display_a( ){cout<<a<<endl;}};class B{ int b; public: void Setb(int x){b=x;} void Dispaly-b( ) {cout<<b<<endl;}};class C:public A,private B{ private: int c; public: void Setc(int x,int y,int z){c=z;Seta(x);Setb(y);}void Display_c( ){ cout<<c<<endl;}}; ①void main( ) ② { ③ C cc; ④ cc.Seta(1); ⑤ cc.Display_a( ); ⑥ cc.Setc(2,2,3); ⑦ cc.Dispaly-b( ); ⑧ cc.Display_c( ); }

A.输出为2 2 3

B.有错误在第5行

C.输出为1 2 3

D.有错误在第7行

答案

参考答案:D

解析:[命题目的] 考查类的继承方法。[解题要点] private继承不能调用Display_b函数, public继承可以调用基类中非private成员。[考点链接] 类的继承方式public,protected和private的区别。

选择题