c++ - 为什么添加多个虚函数时类的大小保持不变?
问题描述
类的大小只有 8 个字节,这是虚拟指针的大小?那么班级中的vtable的大小呢?
#include <iostream>
using namespace std;
class Base
{ public:
virtual void f1(){}
virtual void f2(){}
};
class Derive: public Base
{
void f1(){}
void f2(){}
};
int main()
{
cout<<sizeof(Base)<<endl;
}
解决方案
您可能会发现,如果您的实现确实使用 v-tables 来实现虚函数,那么该类本身会存储一个指向v-table 的指针。
指针的大小将不取决于它指向的 v-table 中的函数数量。
推荐阅读
- c# - UWP TreeView 排序导致随机事件
- javascript - mongodb findOne() 没有返回值 nodejs
- android - 我可以在不下载 android studio 的情况下使用颤振吗?
- r - 无法使用 RDCOMClient 从 Outlook 获取俄语主题
- asp.net-core - Where to storage private images in ASP .NET Core
- sql - 在同一个表中查找从先前保存中删除的行的保存 ID
- rtf - 如何使用 RTF 在 BI Publisher 中根据特定单词过滤值
- sql - 仅更新内容以在字段中添加其他文本。SQL
- r - 有没有办法让用户在 R Shiny 应用程序中上传图像并将其呈现在可下载的降价报告中?
- perforce - 创建工作区时 Perforce 添加的“仓库”文件夹