A-A+

有如下程序:#includeusing namespace stdcl

2022-08-06 02:35:45 问答库 阅读 174 次

问题详情

有如下程序:
#include<iostrealn>
using namespace std
class A{
public:
virtual void f(){cout$amp;void g(){cout$amp;};
class B:public A{
public:
virtual void f(){cout$amp;void g(){cout$amp;};
void show(A&A){a.f();a.g();}
int main(){
B b;
show(B);
return 0;
}
运行时的输出结果是
A.12
B.34
C.14
D.32

参考答案

正确答案:D
解析:函数f( )是虚函数,函数g( )不是虚函数,因此当指向派生类的指针调用基类的对象时,会调用派生类的虚函数f( ),但还是会调用基类的成员函数g( ),因此会输出32。

考点:程序