前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++虚函数表

C++虚函数表

作者头像
祝你万事顺利
发布2019-05-28 13:40:09
1K0
发布2019-05-28 13:40:09
举报
文章被收录于专栏:Unity游戏开发
概述

为实现C++多态,C++使用了一种动态绑定技术,这个技术核心是虚函数表

类的虚表

一个类继承包含虚函数的基类,那么这个类也有自己的虚表。 虚表是一个指针数组,其元素是虚函数的指针,每个元素对应一个虚函数的函数指针,普通的函数即非虚函数,其调用不需要经过虚表。

虚表指针

续表是属于类的,而不是属于某个具体的对象。一个类只需要一个虚表。同一个类的所有对象都使用同一个虚表。 对象内部包含一个指向虚表的指针,用来指向自己的虚表。

动态绑定

对象的虚表指针用来指向自己所属类的虚表,虚表中的指针会指向其继承的最近的一个类的虚函数。

代码语言:javascript
复制
class A {
public:
    virtual void vfunc1();
    virtual void vfunc2();
    void func1();
    void func2();
private:
    int m_data1, m_data2;
};
 
class B : public A {
public:
    virtual void vfunc1();
    void func1();
private:
    int m_data3;
};
 
class C: public B {
public:
    virtual void vfunc2();
    void func2();
private:
    int m_data1, m_data4;
};

image.png

文章参考:https://blog.csdn.net/primeprime/article/details/80776625

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 类的虚表
  • 虚表指针
  • 动态绑定
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档