问题 单项选择题

有如下程序:

#include<iostream>

using namespace std;

class A{

public:

virtual void f( ){ cout<<1;}

void g( ){ cout<<2;}

};

class B: public A{

public:

virtual void f( ){ cout<<3;}

void g( ){ cout<<4;}

};

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

解析:

在派生类中可以重新定义从基类继承下来的虚函数。多态调用是指借助于指向基类的指针或引用的调用。C++中,一个基类指针(或引用)可以用于指向他的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。

单项选择题
问答题 简答题