Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1395976
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: C/C++

2015-05-25 20:14:54

    在设计的角度看,c++类中的成员函数与成员变量是绑定到一起的
    从运行的角度看,c++类中的成员函数是处于代码区,而成员变量是属于数据段的
    因此c++的虚函数表是属于对象,但是虚函数是属于类,虚函数表提供了一种动态将函数与对象关联起来,这是一种动态的机制
    在对象创建之时,将虚函数的位置填充到虚函数表,也就是说是在类的对象new时,就已经将表填好了,在构造基类之后,虚函数表中会填充基类的函数指针,继续构造派生类时,又以派生类的函数来更新虚函数表
    在对象销毁之时,也会重新填充虚函数表,也就是说,派生类析构之后,虚函数表中的函数指针会变成基类的函数指针
     所谓对象的析构函数,它只是销毁和释放了对象的外加性的资源(例如:malloc的空间,虚函数表),对象本身并未释放,它的非外加性的资源还是可以存在的
     非虚函数就不需要使用函数表的方式来实现了,直接根据对象所属的类来找类的方法来执行,
     c++中类的方法名都有类名+函数名+参数来标示的
阅读(1110) | 评论(0) | 转发(0) |
0

上一篇:数字签名与哈希算法

下一篇:top N算法

给主人留下些什么吧!~~