#include<iostream>
using namespace std;
class GA{
public:
virual 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;
}
为什么输出是1112不是1122的呢?show(b)不是直接运行派生类GB中的函数的么?I
using namespace std;
class GA{
public:
virual 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;
}
为什么输出是1112不是1122的呢?show(b)不是直接运行派生类GB中的函数的么?I
