class base1
{
public:
virtual void fun(){};
int x;
};
class base2{
public:
virtual void fun(){};
virtual void foo(){};
int x;
};
class derived:public base1,base2{
virtual void fun(){};
char c;
int x;
};
cl /d1 reportSingleClassLayoutderived test.cpp命令查看内存结构
base1虚表指针
base1成员变量
base2 虚表指针
base2成员变量
derived成员变量
【如果derived函数没有覆盖基类虚函数,那么直接挂在第一个基类虚表之后;如果有,则覆盖每一个基类中对应的虚函数;】
本文深入探讨了C++中类继承与虚函数的使用方式,详细解析了如何实现多态性,以及在类层次结构中的虚表指针和成员变量布局。通过示例代码展示了如何在派生类中覆盖基类的虚函数,并分析了内存结构的组织方式。

5899

被折叠的 条评论
为什么被折叠?



