C++ 中的接口继承

2024-01-12

我有以下类结构:

class InterfaceA
{ 
   virtual void methodA =0;
}

class ClassA : public InterfaceA
{
   void methodA();
}

class InterfaceB : public InterfaceA
{
   virtual void methodB =0;
}

class ClassAB : public ClassA, public InterfaceB
{ 
   void methodB(); 
}

现在以下代码无法编译:

int main()
{
    InterfaceB* test = new ClassAB();
    test->methodA();
}

编译器说该方法methodA()是虚拟的,没有实现。我认为它是在ClassA(它实现了InterfaceA)。 有谁知道我的错在哪里?


那是因为你有两份副本InterfaceA。请参阅此以获得更大的解释:https://isocpp.org/wiki/faq/multiple-inheritance https://isocpp.org/wiki/faq/multiple-inheritance(你的情况类似于“可怕的钻石”)。

您需要添加关键字virtual当您从接口继承类时。您还需要添加virtual当您从 Interface 继承 Interface 时。

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

C++ 中的接口继承 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现

随机推荐

  • 支持 Phonegap 最小平台版本

    我的公司正在进行一个大项目 我必须开发 IOS Android symbian Windows Phone 和黑莓 在听说和研究 Phonegap 后 我真的正在考虑使用它 但是我想知道是否有以及哪些是针对这些平台使用 Phonegap 进
  • CanCan 和不带模型的控制器

    我正在使用 CanCan 进行授权 我在 app config ability rb 中定义了模型操作用户规则 并且工作正常 我已经添加了这一行load and authorize resource到我的 application contr
  • 如何在 Spark Streaming EC2 集群应用程序中从 S3 读取输入

    我试图让我的 Spark Streaming 应用程序从 S3 目录读取他的输入 但在使用 Spark submit 脚本启动它后我不断收到此异常 Exception in thread main java lang IllegalArgu
  • 如何使用 GattServer 以编程方式清除蓝牙缓存

    我对 BLE 有点熟悉 并且我面临着继承代码的一些问题 所以该应用程序的工作方式如下 启用 BLE 后 应用程序会扫描设备 该应用程序显示找到的设备 用户选择要配对的设备 该应用程序与设备配对 我面临的问题是 配对几次 情况有所不同 后 手
  • 为什么Python没有访问修饰符?Python中有什么替代品?

    为什么Python没有像C Java中那样的访问修饰符 即公共 私有等 Python中封装和信息隐藏的替代方法是什么 From 维基百科 https en wikipedia org wiki Python syntax and seman
  • AllAuth安装

    我正在尝试安装和配置 Django AllAuth 但遇到了很多障碍 恐怕我只是错过了一些可能会澄清一些事情的基本概念 为了使基本的社交身份验证正常工作 需要在社交提供商 Facebook Twitter 等 内部完成哪些设置 如果是这种情
  • 如何清除chrome应用程序的错误列表?

    首先介绍 Chrome 应用程序 我正在尝试简化某种工作流程 我已启用复选框来收集错误 但似乎无法在应用程序执行之间清除它们 我以为关闭应用程序然后重新启动它就可以了 现在唯一有效的方法是删除应用程序 然后重新加载包 要清除 收集错误 中的
  • 如何覆盖 Razor 的“名称”HtmlAttribute

    Html RadioButtonFor Model gt Model Location Location Html LabelFor Model gt Model Location Location Html RadioButtonFor
  • 在keras中,如何拟合不同类型的多个输入数据

    我有 3000 张 320 320 形状的图像 它们的拍摄时间以及它们的标签 现在我想使用这两种类型的数据 图像和时间 来预测它们的标签 主要代码如下 num classes 10 image out GlobalMaxPooling2D
  • Hibernate: LazyInitializationException: 未能延迟初始化角色集合。无法初始化代理 - 无会话

    我有下一个错误 nested exception is org hibernate LazyInitializationException failed to lazily initialize a collection of role c
  • 如何根据消息头属性仅读取特定队列消息

    我在 activemq 队列中有一个消息列表 每条消息都有一个带有值的自定义标头属性 我应该如何才能仅访问那些自定义标头属性值 123 的消息 我正在使用类似下面的东西从队列中选择消息 如何选择具有 customHeaderProperty
  • 如何处理android中的睡眠模式进入?

    我在任何地方都没有找到它 我该如何处理在android中进入睡眠模式 当Android设备进入睡眠模式时我想做什么 这是可能的还是有办法处理它 只需使用 BroadCastReceivers 进行系统调用 唤醒 睡眠 即可实现此目的 And
  • 如何在MVVM模式中实现INotifyPropertyChanged和observableCollection?

    我在模型中有一个 ObservableCollection of Products 我希望 ViewModel 能够侦听 ObservableCollection of Products 中的任何更改 我不确定如何去实施它 我读过一些教程
  • 查找二叉树中指定节点的路径 (Python)

    我在计算二叉树中从根到指定节点的路径时遇到问题 这是专门针对此问题的 Python 解决方案 这是一个例子 给定下面的二叉树 如果我指定值为 4 的节点 我想返回 1 2 4 如果我指定值为5的节点 我想返回 1 2 5 1 2 3 4 5
  • C++ 对象实例化

    我是一名 C 程序员 正在尝试理解 C 许多教程使用片段演示对象实例化 例如 Dog sparky new Dog 这意味着稍后您将执行以下操作 delete sparky 这是有道理的 现在 在不需要动态内存分配的情况下 是否有任何理由使
  • Visual Studio中有类似Eclipse Perspective的东西吗?

    我想知道 Visual Studio 2008 或 2010 中是否有类似 Eclipse Perspectives 的东西 对于那些不熟悉 Eclipse 的人 这里有一个视角的定义 http www eclipse org articl
  • spplot() 上的国家/地区标签

    我想为 spplot 上的区域添加名称标签 Example load url http gadm org data rda FRA adm0 RData FR lt gadm FR lt spChFIDs FR paste FR rowna
  • spring-context.xml 的位置

    当我在 tomcat 上运行应用程序时 spring context xml 文件位于 WEB inf spring context xml 还行吧 但是运行 junit 测试时 我必须向它提供 spring test context xm
  • Jquery 与原型 magento 冲突 - 我怎样才能分开?

    我似乎无法通过我的 Magento 网站将 jQuery 与 Prototype 分开 我已经使用更改的标签等在 JsFiddle 上工作了 但是当我将它添加到我的 magento 站点时 我不断收到未捕获的语法错误 页面位于http ww
  • C++ 中的接口继承

    我有以下类结构 class InterfaceA virtual void methodA 0 class ClassA public InterfaceA void methodA class InterfaceB public Inte