C++进阶 --- 多继承中的虚表问题

多继承中的虚表问题

如下代码:

A类、B类都有虚函数,C类继承了A、B类,然后重写了A、B类的虚函数,且C类也有自己的虚函数

cpp 复制代码
class A
{
public:
    virtual void fA()
    {
        cout << "A::f()" << endl;
    }
};
class B
{
public:
    virtual void fB()
    {
        cout << "B::f()" << endl;
    }
};
class C :public B, public A
{
    void fA() {
        cout << "C::fA()" << endl;
    }
    void fB() {
        cout << "C::fB()" << endl;
    }
    virtual void fC() {
        cout << "C::fC()" << endl;
    }
    virtual void fD() {
        cout << "C::fD()" << endl;
    }
};
int main() {
    A a;
    B b;
    C c;
    cout << sizeof(c) << endl;  // 8 (32位下)
    return 0;
}

调试图:

相关推荐
努力努力再努力wz11 分钟前
【CUDA 入门系列】核函数与线程模型:一文理清 Grid、Block、dim3、内置变量与全局索引
c++·架构
坤坤子吖12 分钟前
Python基础语法学习:条件、循环与程序控制
开发语言·笔记·python·学习
ShineWinsu16 分钟前
对于Redis:ZSet类型的解析
数据库·c++·redis·缓存·面试·有序集合·zset
吠品18 分钟前
volatile到底在拦什么:SysTick->VAL读的哪格
java·服务器·开发语言
All for pursuit.30 分钟前
【回溯-5】78.子集
数据结构·c++·算法·leetcode
狼与自由38 分钟前
python打包
开发语言·python
进击的雷神38 分钟前
OpenClaw 太重、启动太慢?我试了试这个 Rust 重写的轻量版 AI 助手网关
开发语言·人工智能·rust·zeroclaw
辛苦才能39 分钟前
C++ 红黑树(上):五条规则背后的近似平衡与插入的三类情况
开发语言·c++
Είναι η κοπέλα44 分钟前
Python 虚拟环境:venv、conda 与 Python 版本选择全解
开发语言·python·conda
by209991 小时前
学会使用 std::string 类,并理解其内部是如何管理字符串的详细阐述(下)
c++·经验分享·笔记·字符串·类和对象·string