C++计算机二级问题,求大神解答

运行时输出结果为?
A 1111
B 1211
C 1112
D 1212

为什么呢?display(GA &g)是什么意思呢?谢谢!

第1个回答  推荐于2016-03-07
#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();} //函数定义,形参为类GA的对象g
void display(GA &g){cout<<g.f();} //函数定义,形参为类GA的对象g的地址
int main()
{
GA a; //定义GA的对象a
show(a); //调用GA的成员函数,输出1
display(a); //调用GA的成员函数,输出1
GB b; //定义GB的对象b
show(b); //调用GB的成员函数,输出1
display(b); //相当于display(GA &g=b):形参实际上就指向了类GB的存储首地址调用GB的成员函数,输出2
return 0;
}
选C本回答被提问者和网友采纳
相似回答