抽象类 C++ 的 VTABLE [重复]

2024-01-12

可能的重复:
抽象类有VTABLE吗? https://stackoverflow.com/questions/2592438/does-an-abstact-classes-have-a-vtable

是否为具有纯虚函数和虚函数的抽象类创建虚函数表?

class Abstarct {
public:
   virtual void f() = 0;
   virtual void g() {}
};

Thanks.


我刚刚看到其他主题中的答案都没有清楚地回答这个问题。

答案是:是和否。

由于 vtable 和 vptr 是实现定义的概念,并且不是 C++ 标准强制要求的,因此编译器可以自由选择任何方法,只要它能够动态调度 vtable 和 vptrvirtual功能 (pure或其他)。

因此,对于实现 vtable 和 vptr 的编译器,答案是“是”(或者最有可能是“是”),而对于其他不实现 vtable 和 vptr 而是以其他方式实现动态调度的编译器,答案显然是否定的。

请参阅此主题:

除了vtable之外,C++虚函数还能如何实现? https://stackoverflow.com/questions/5417829/how-can-c-virtual-functions-be-implemented-except-vtable

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抽象类 C++ 的 VTABLE [重复] 的相关文章

  • 以编程方式在网格视图列上显示数据

    我有一个产品数量列表和一个网格视图 网格视图已经绑定到一些数据 但我想在网格视图的第三列显示产品数量列表 以下是如何将数据绑定到网格视图的代码 gvProduct DataSource distSPUItem gvProduct DataB
  • 带有 Windows 窗体应用程序的地图

    我正在构建一个需要地图的 C Winforms 应用程序 例如 Google 地图 Bing 地图等 但我对 ToU 许可 非商业使用等感到非常困惑 我的问题 您建议将哪个地图提供商 最好是免费的 嵌入到 winforms 应用程序中以用于
  • NHibernate手动控制抓取

    我正在使用 NHibernate 我想控制手动获取相关实体 这是我的示例实体 public class Post public virtual long Id get set public virtual string Title get
  • 递归显式模板实例化以导出库的符号

    在我之前的问题中我问过递归显式模板实例化是否可能 https stackoverflow com questions 7395113 is recursive explicit template instantiation possible
  • C# 从整数反序列化枚举

    是否可以从 C 中的 int 反序列化枚举 例如如果我有以下课程 class Employee public string Name get set public int EmployeeTypeID get set 我可以轻松地从 XML
  • 本机 C++ 通过代理 C++ 托管 dll 使用 C# dll

    这相当复杂 所以请耐心听我说 我有一个用本机 仅限 Win32 C 编码的第 3 方程序 目标 作为目标设计的一部分 它实现了一个 dll 插件系统 本机 DLL 当放置在程序的 ext 目录中时 由目标加载 然后 目标根据需要调用每个 D
  • 带有 Prism 区域适配器的 AvalonDock

    我看到了一些关于 SO 的问题 但似乎没有一个适合我 我希望能够使用伟大的使用 Prism 4 但是 所有示例区域适配器均适用于 Avalondock 1 x 系列 我无法使其工作 有人有关于如何为 AvalonDock 的 LayoutD
  • flowlayoutpanel和水平滚动条问题

    我正在使用一个 flowlayoutpanel 它有很多逻辑上的按钮 我遇到的问题是 当我调整窗口大小时 当窗口变小时 我无法看到所有水平排列的按钮 相反 当窗口变小时 按钮会下降到下一行 谁能帮我解决这个问题 我只是希望按钮水平排列 当窗
  • 在 C++ 中从另一个数组初始化结构内的数组[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions struc
  • 需要帮助将 winform 迁移到 net 5

    我正在将 winform 应用程序从 net core 3 1 移植到 net 5 并收到以下错误 严重性代码 说明 项目文件行抑制状态 错误NETSDK1136 目标平台必须设置为Windows 通常 通过在 TargetFramewor
  • 变形:Opencv 使用 Visual Studio 将图像显示到曲面屏幕

    我正在尝试使用 opencv API 来扭曲图像 以便将其显示到曲面屏幕上 我已经浏览了opencv中提供的翘曲apihere http docs opencv org 2 4 modules stitching doc warpers h
  • 有没有办法对 RichTextBox 的撤消历史进行分组或暂时禁用它?

    我目前正在研究 WPF 中 RichTextBox 内的表格 在 WPF 中 表格没有行和列 只有行 每行都有一定数量的单元格 当用户按下 添加列 按钮时 我的程序会向每一行添加一个新单元格 使用此方法的问题是 在用户添加一列后 如果他们按
  • 如何在 ASP.NET MVC 中获取参数数组作为 GET / POST?

    如何最好地获取数组 item gt value 对作为 GET POST 参数 在 PHP 中 我可以这样做 网址 这得到的参数为 Array a gt Array one gt 100 two gt 200 有什么方法可以在 ASP NE
  • ASP.NET Core中间件如何进行DI?

    我正在尝试将依赖项注入到我的中间件构造函数中 如下所示 public class CreateCompanyMiddleware private readonly RequestDelegate next private readonly
  • 允许使用 AutoMapper 或类似工具映射动态类型吗?

    我已经开始使用https github com robconery massive https github com robconery massive对于一个项目 我想知道是否有任何映射工具可以支持动态到静态类型的映射 我以前使用过 Au
  • 以编程方式连接和断开 USB,“无需拔出和重新插入”

    我需要以编程方式连接和断开 USB 也就是说 我已经插入了USB设备 我需要使用 C NET 应用程序传输文件 该应用程序将监视特定文件夹并将文件从该文件夹传输到 USB 驱动器 我需要在文件传输后断开 USB 设备的连接 并在需要时连接
  • 为 winforms ComboBox 中的单个项目着色?

    我遇到了一个困境 我有一个表单 其中包含许多组合框 其中包含在某些情况下可能无效 过时的信息 选项 项目 我不能简单地从项目中删除过时的信息 但我确实想在选项无效时为用户提供视觉线索 我正在考虑对项目进行着色 可能是红色 来指示它们是否无效
  • In 和 Out 属性在 .NET 中如何工作?

    我一直在尝试跨序列化数组AppDomain边界 使用以下代码 public int Read byte buffer int offset int count return base Read buffer offset count 作为猜
  • 在 C++11 中设置 std::thread 优先级的可移植方法

    在后 C 11 世界中设置 std thread 实例的优先级的正确方法是什么 是否有一种至少在 Windows 和 POSIX Linux 环境中有效的可移植方法 或者是获取句柄并使用可用于特定操作系统的任何本机调用的问题 无法通过 C
  • 文件按文件名模式存在

    我在用 File Exists filepath 我想做的是将其替换为模式 因为文件名的第一部分发生了变化 例如 该文件可以是 01 peach xml 02 peach xml 03 peach xml 如何根据某种搜索模式检查文件是否存

随机推荐

  • 将数据发送到 Google Cloud ML 自定义预测例程时出现未知错误

    我正在尝试在 AI Platform 上编写自定义 ML 预测例程 以从客户端获取文本数据 进行一些自定义预处理 将其传递到模型中 然后运行模型 我能够成功地将这段代码打包并部署到谷歌云上 但是 每次我尝试从 node js 向它发送请求时
  • 在 CVS 中移动文件而不重置修订号

    最近我一直在源代码树中移动源文件 例如 将一堆文件放入一个公共程序集中 我一直在这样做 从 CVS 中删除文件 然后将其再次添加到新位置 问题是文件的修订号重置回 1 1 有没有一些简单的方法可以在不重置号码的情况下移动物品 我可能应该提到
  • 将 ConstraintLayout 中的所有子宽度与最宽子宽度匹配,宽度 = 换行内容

    ConstraintLayout 功能强大 但有时也很棘手 我想实现一个布局ConstraintLayout这可以很容易地实现LinearLayout 蓝色区域是父constraintLayout 红色部分是LinearLayout 我想通
  • 如何从 R 发送电子邮件

    我想从 R 发送电子邮件 这是我到目前为止所拥有的 library sendmailR from lt email protected cdn cgi l email protection to lt email protected cdn
  • 在 R 中处理非常大的数据集

    我正在处理一个非常大的数据集 我正在从 Oracle 数据库下载该数据集 数据框大约有 2100 万行和 15 列 我的操作系统是 windows xp 32 位 我有 2GB RAM 短期内我无法升级我的内存或操作系统 它正在工作 我需要
  • 根据条件向数据框中添加新行 python pandas

    需要根据条件向数据帧添加新行 当前数据框 在此数据框中有 4 列 我想做的就是检查 时间 列 检查每个夜班午夜 12 点的最接近值 并添加两个新行作为 11 59 59 和 00 00 01与最近的数据点相同的值 例如 03 01 晚的最接
  • WebSocket - 发送第二条消息后,我得到:服务器不得屏蔽它发送到客户端的任何帧

    我成功收到第一条消息 但第二条 相同的消息 我收到错误 服务器不得屏蔽发送给客户端的任何帧 它只有一个客户 private void RunWebSocketListener int websocket port 8996 TcpListe
  • IntelliJ IDEA - Android JDK 不起作用

    我刚刚安装了 IntelliJ IDEA 10 0 0 2 社区版我已经安装了 Android SDK C Program Files Android android sdk windows 我想创建一个新的android项目 所以我创建一
  • WPF 在 XAML 继承类中使用 override 属性

    我有一个小问题 找不到任何解决方案 也许这是 Visual Studio 中的问题 我创建了一个从 Image 继承的新类 然后我重写 Source 属性 class GifImage Image public new ImageSourc
  • 更新属性文件中的属性值而不删除其他值[重复]

    这个问题在这里已经有答案了 内容First properties name elango country india phone 12345 我要变化country from india to america 这是我的代码 import j
  • 如何真正理解 robocopy 返回码 2

    我正在努力解决如何处理有时会返回 2 的部署脚本robocopy 命令和输出如下 它返回 2 这意味着 额外文件 总体而言 这似乎是成功的 我应该接受 2 作为成功吗 ROBOCOPY Robust File Copy for Window
  • MySQL DELETE 查询的解释

    有没有办法解释DELETE使用 MySQL 进行查询 就像我们可以解释的那样SELECT query 从 MySQL 5 6 3 开始 EXPLAIN 提供有关 SELECT DELETE INSERT REPLACE 和 UPDATE 语
  • UINavigationBar 的自定义高度或 UINavigationBar 的替代方案

    我有一个带有导航栏的 viewController 我想增加导航栏的高度 但我不能 我已经搜索过增加导航栏的高度 但没有取得任何成功 是否有任何增加导航栏或任何其他库 替代方案的高度 不允许直接更改 It is not permissibl
  • Android Widget 位图尺寸

    Hallo 我正在编写一个小部件 但不确定使用什么大小的位图作为每个屏幕分辨率 密度的背景 根据Android 开发者应用程序小部件 http developer android com guide topics appwidgets in
  • 如何配置系统以使用 FIWARE yum 存储库?

    我知道 FI WARE 提供了一个公共 yum 存储库 位于http repositories testbed fiware org http repositories testbed fiware org 可用于安装 FI WARE 软件
  • ImportError:无法从“collections”导入名称“MutableMapping”(/usr/local/lib/python3.10/collections/__init__.py)

    我正在 vs code 中运行这个简单的 Flask 应用程序 将其 Docker 化并加载到 ECS 任务正在退出并出现以下错误 ImportError 无法从 集合 usr local lib python3 10 collection
  • 基于 paxos 的复制键值存储的领导者选举

    我将使用多个 Paxos 实现一个键值存储 我会有几个节点 其中一个是主节点 该主节点接收更新请求并将值复制到从节点 我的问题是如何选择主节点 或领导者 我还可以使用Paxos算法吗 如果是这样 您认为有必要将paxos实现抽象为一个单元
  • Pyomo:限制迭代次数

    我有一个 Pyomo 模型 最终得到这样的解决 solver SolverFactory ipopt results solver solve model tee False 该模型当前运行了 3000 次迭代才放弃 在我看来 必须有一种方
  • 如何以编程方式限制我的 C# 应用程序的带宽使用?

    我这里有一个备份应用程序 它连接到各种网络服务并从 ftp 或 http 服务器下载 上传文件 限制应用程序带宽使用的最简单方法是什么 我需要这样做 因为应用程序一旦安装并运行就会减慢所有办公室人员的互联网访问速度 这最终会让我陷入地狱 因
  • 抽象类 C++ 的 VTABLE [重复]

    这个问题在这里已经有答案了 可能的重复 抽象类有VTABLE吗 https stackoverflow com questions 2592438 does an abstact classes have a vtable 是否为具有纯虚函