码迷,mamicode.com
首页 > 其他好文 > 详细

虚函数表

时间:2014-11-18 12:02:41      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   os   sp   java   2014   art   log   

C++的虚函数是一种多态技术,试图用不变的代码实现可变的代码。

多态技术分为两类:

1.静态多态:函数重载和运算符重载

2.动态多态:虚函数


虚函数表

每个含有虚函数的类中有一张虚函数表(vtbl),表中每一项是一个虚函数的地址。当类实例化对象时,表会分配到实例的内存中。

class Base
{
  virtual void f(){cout<<"base::f"<<endl;};
  virtual void g(){cout<<"base::g"<<endl;};
  virtual void h(){cout<<"base::h"<<endl;};
};
void main()
{
  Base b;
}

VC里面的虚函数表如图:

bubuko.com,布布扣

这里比较奇怪的是地址不连续。

Reference

[1].http://blog.csdn.net/haoel/article/details/1948051/

虚函数表

标签:blog   http   ar   os   sp   java   2014   art   log   

原文地址:http://my.oschina.net/lvyi/blog/345789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!