- 博客(2)
- 收藏
- 关注
原创 编译器处理虚函数的原理
1)通常,编译器给类的每个对象添加一个隐藏的成员,这个成员保存了一个指向虚函数表(virtual function table,vtbl)的指针,而虚函数表中保存了类对象进行声明的虚函数的地址。也就是说我们可以通过这个隐藏成员访问虚函数表,进而访问被声明的虚函数的的地址,从而调用虚函数。 2)现在来看基类和派生类虚函数表的区别和联系,首先需要知道,基类和派生类的虚函数表是两个东西,保存在不同位置...
2018-08-01 12:51:50
1858
原创 基类指针和派生类指针的问题
基类指针和引用可以指向派生类对象,但是却只能调用基类方法而不允许调用派生类方法。其实这并不是问题,因为基类引用的意思是指向基类的引用,也就是说基类引用本质上是一个基类对象,只不过将一个派生类对象赋给它,它本质上还是一个基类对象,只能调用基类的方法,而派生类并不排斥调用基类方法因为派生类本身就继承了基类方法,这是很自然的。反过来就不能成立了,也就是说我们不要试图将一个派生类的引用(或指针)指向一个基...
2018-08-01 12:48:15
937
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人