有如下程序:#include <iostream> u

有如下程序:

#include <iostream>
using namespace std;
class GA{
public:
    virtual int f(){return 1;}
};
class GB: public GA{
public:
    virtual int f(){return 2;}
};
void show(GA g){cout<<g.f();}
void display(GA &g){cout<<g.f();}
int main(){
    GA a; show(a); display(a);
    GB b; show(b); display(b);
    Return 0;
}

运行时的输出结果是( )。

答案
C
解析

a是基类的对象,执行GA a:sliow(a)、display(a)时,调用a.f()时调用的 是基类的成员函数输出11,b是派生类的对象,执行GB b:show(b)时, 参数采用的是按值传递,b是GA类对象,调用b.f ()时调用基类的成员 函数输出1。执行display(b)时,display函数参数采用的是地址传递,调 用的是派生类的成员函数输出2。

题目信息

题号:7726
题型:单选题
知识点:计算机二级
难度:普通