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;
}

调试图:

相关推荐
想吃火锅10056 小时前
【leetcode】405.数字转换为十六进制数js
开发语言·javascript·ecmascript
专注VB编程开发20年6 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
cfm_29146 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
~小先生~7 小时前
Python从入门到放弃(一)
开发语言·python
许彰午7 小时前
17_synchronized关键字深度解析
java·开发语言
z落落7 小时前
C# 泛型接口和泛型类+泛型约束
开发语言·c#
阿正的梦工坊7 小时前
【Rust】02-变量、不可变性与基础类型
开发语言·后端·rust
阿正的梦工坊7 小时前
【Rust】08-集合类型、字符串与迭代器入门
开发语言·rust·c#
FuckPatience8 小时前
C# 使用泛型协变将派生类类型替换为基类类型
开发语言·c#
张忠琳8 小时前
【Go 1.26.4】(Part 1) Go 1.26.4 超深度源码分析 — 总体架构与模块全景
开发语言·golang