问题
填空题
下列程序的运行结果是 【12】 。
# include<iostream. h>
class Apublic:
virtual void use()cout << "in A\n";
;
class B:public Apublic:
virtual void use()cout << "in B\n";
;
class C: public Bpublic:
virtual void use() cout<< "in C\n";
; void main() A *obj;
obi=new C;
obj->use()
delete obj;
答案
参考答案:in C
解析: 本题考查虚函数和多态性。原本obj指向祖先类,随后被赋值,指向新的子孙类,则在使用use这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。