面向对象程序设计教学课件.pptVIP

  • 1
  • 0
  • 约6.4万字
  • 约 300页
  • 2021-12-11 发布于安徽
  • 举报
13. 虚函数的工作机理(1) 联编 将函数调用链接上相应于函数体的代码 静态联编 (早期联编) 编译时完成 对象调用函数、非多态调用 动态联编 (滞后联编) 运行时才能完成 多态调用 静态联编可在编译时确定,是因为可以确定被调用函数所在类 动态联编:祖先指针指向了一个后代对象,但是没有办法知道其类型。即使事先知道了但是指向关系又是动态的。(美猴王收贡,按照是否仙猴、几代猴、是否闹天宫等综合计算。美猴王不认识每个猴子,即使认识了还得算,于是猴丞相。。。) 解决的方法是凡有虚函数的类均维护一个虚表,实例化每个对象时为其增加一个指针,指向这个虚表,虚函数调用时不需要确定对象类型,通过该指针即可找到所要链接函数 13. 虚函数的工作机理(2) class A{ int a; public: virtual void f(); virtual void g(int); virtual void h(double); }; class B:public A{ int b; public: virtual void g(int); }; class C:public B{ int c; public: virtual void h(do

文档评论(0)

1亿VIP精品文档

相关文档