zoukankan      html  css  js  c++  java
  • 虚函数表

    假设有类:

    class Base {

         public:

                virtual void f() { cout << "Base::f" << endl; }

                virtual void g() { cout << "Base::g" << endl; }

                virtual void h() { cout << "Base::h" << endl; }

    };

     则:

                Base b;

                cout << "虚函数表地址:" << (int*)(&b) << endl;

                cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl;

    实际运行经果如下:

    虚函数表地址:0012FED4

    虚函数表 — 第一个函数地址:0044F148

                 ((int*)*(int*)(&b)+0);  // Base::f()函数的地址

              ((int*)*(int*)(&b)+1);  // Base::g()函数的地址

              ((int*)*(int*)(&b)+2);  // Base::h()函数的地址

    图解:

    继承:

    Derive d; 的虚函数表如下

  • 相关阅读:
    SSM环境搭建
    spring 开发 Tars
    Tars --- Hello World
    Java IO流
    Java集合
    常用类
    Pwn With longjmp
    格式化字符串漏洞利用实战之 njctf-decoder
    一步一步 Pwn RouterOS之ctf题练手
    srop实战
  • 原文地址:https://www.cnblogs.com/yannuonuo/p/2996302.html
Copyright © 2011-2022 走看看