A-A+

为使程序的输出结果为: Base:: fun 那么应在下列程序画线处填入的正确语句是()。

2022-08-05 23:49:40 问答库 阅读 173 次

问题详情

为使程序的输出结果为: Base:: fun 那么应在下列程序画线处填入的正确语句是()。 #include <iostream> using namespace std; class Base { public: void fun () { cout<<"Base: :fun"<<end1; } }; class Derived : public Base { public: void fun () { cout<<"Derived: :fun"<<end1; } }; int main () { Base a,*pb; Derived b; _________; pb->fun(); //调用基类的成员函数 fun() return 0 ; }
A.pb=&a
B.pb=b
C.pb=&b
D.pb=&Base请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
解析:本题程序中类Derived是从基类Base公有继承的。主函数中定义了一个基类对象a和一个指向基类对象的指针pb,又定义了一个派生类Derived对象b。当pb指向对象b时,pb->fun()调用基类Base的成员函数fun()。这是由于Derived是Base的子类型,因此可以将派生类Derived的对象b的地址赋值给指向基类Base的指针pb,但这时指针pb只能使用从基类Base继承的成员。

考点:程序,语句