首页 > 编程语言 > 详细

《C++反汇编与逆向分析技术揭秘》--虚函数 读书笔记

时间:2020-04-26 00:03:16      阅读:75      评论:0      收藏:0      [点我收藏+]

前言:

      虚函数是面向对象程序设计的关键部分,对象的多态性需要通过虚函数表和虚函数指针来完成,虚函数表指针被定义在对象首地址前四个字节地方,因此虚函数必须作为成员函数使用,由于非成员函数没有this指针,无法获得虚表指针,进而无法获得虚表,也就无法访问虚函数

 

这次学习主要解决认识几个问题:

  1. 为什么虚函数后需要提供默认的构造函数呢?

  2. 构造函数内发生了哪些变化呢?

  

虚函数的机制

编译器处理虚函数的方法是:为每个类对象添加一个隐藏成员,隐藏成员中保存了一个指向函数地址数组的指针,称为虚表指针(vptr),这种数组成为虚函数表(virtual function table, vtbl),即,每个类使用一个虚函数表,每个类对象用一个虚表指针。

下面实例:

技术分享图片

技术分享图片技术分享图片

《C++反汇编与逆向分析技术揭秘》--虚函数 读书笔记

原文:https://www.cnblogs.com/mysky007/p/12776159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!