有如下程序: #include using namespace std class A{ public: virtual void f(){cout

admin2017-10-17  20

问题 有如下程序:
#include
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

解析 函数f( )是虚函数,函数g( )不是虚函数,因此当指向派生类的指针调用基类的对象时,会调用派生类的虚函数f( ),但还是会调用基类的成员函数g( ),因此会输出32。
转载请注明原文地址:https://kaotiyun.com/show/fPAp777K
0

最新回复(0)