问题
单项选择题
如下程序的输出结果是
#include<iostream>
using namespace std;
class A
public:
virtual void f( )tout<<1;
void g( )cout<<2;
;
class B:public A
public:
virtual void f( )cout<<3;
void g( )cout<<4;
;
void show(A&
A.f( );a.g( );
int nlain( )
B b;
show(
B.;
C.14
D.32
答案
参考答案:D
解析: 对象引用作为函数参数,实参是派生类对象,而形参为基类对象引用,故在函数中只能使用基类的成员函数,虚函数除外。虚函数由于在派生类对象中被重新定义,调用基类虚函数时,调用的是重新定义后的派生类虚函数。故答案为D。