从不同的基类重载同名的虚函数。是否可以? [复制]

2023-11-21

标题可能令人困惑。

假设我们有以下设置;

class A
{
public:
    virtual void fn() = 0;
};

class B
{
public:
    virtual int fn() {};
};

class C: public A, public B
{
};

有什么方法可以定义A::fn in class C?


没有办法进去C指定其中之一C::fn()实现重载A::fn()(大概还有另一个重载B::fn())。然而,你可以做的是引入一个中间层 “重命名”函数的类,例如:

class RemapA : public A
{
    virtual void fnInA() = 0;
public:
    virtual void fn()
    {
        fnInA();
    }
};

class RemapB : public B
{
    virtual int fnInB() = 0;
public:
    virtual int fn()
    {
        return fnInB();
    }
};

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

从不同的基类重载同名的虚函数。是否可以? [复制] 的相关文章

  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 向 ExpandoObject 添加方法时,“关键字 'this' 在静态属性、静态方法或静态字段初始值设定项中无效”

    我尝试向 ExpandoObject 添加一个动态方法 该方法将返回属性 动态添加 给它 但它总是给我错误 我在这里做错了什么吗 using System using System Collections Generic using Sys
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 访问者和模板化虚拟方法

    在一个典型的实现中Visitor模式 该类必须考虑基类的所有变体 后代 在许多情况下 访问者中的相同方法内容应用于不同的方法 在这种情况下 模板化的虚拟方法是理想的选择 但目前这是不允许的 那么 模板化方法可以用来解析父类的虚方法吗 鉴于
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 为什么数组常量只能在初始值设定项中使用? [复制]

    这个问题在这里已经有答案了 可能的重复 数组常量只能在初始化器中使用错误 我正在研究数组 并通过这种在一行中声明和初始化数组的快捷方法来实现 例如 int a 1 2 3 4 5 但是当我尝试执行以下代码时 我收到此编译器错误 提示 数组常
  • Objective-c NSFilePosixPermissions 到人类可读的 NSString

    有没有办法从 NSFilePosixPermissions 整数获取人类可读的字符串 例如 drwxr xr x 文件系统权限属性只是一个无符号长整型值 下面的代码显然可以变得更高效 但它 或多或少 显示了需要做什么才能获得您想要的字符串
  • 使用 jpackage 实用程序进行代码签名+公证在 macOS 上不起作用

    对于某些上下文 我使用 jpackage 实用程序尝试创建签名的 DMG 文件以交付给我的用户 我需要签署此 DMG 的原因是我想对该软件进行公证 顺便说一句 我不确定是否可以使用 jpackage 进行公证 但无论如何我正在尝试 但是 我
  • 通过弱指针对块中的 ivar 进行赋值

    我有一个只读属性isFinished在我的界面文件中 typedef void MyFinishedBlock BOOL success NSError e interface TMSyncBase NSObject BOOL isFini
  • UISearchbar 的“取消”按钮的图像[重复]

    这个问题在这里已经有答案了 可能的重复 设置 UISearchBar 中取消按钮的样式 我正在尝试为搜索栏设置图像 我可以使用搜索栏的子视图为搜索栏设置图像UISearchBarBackground 但我无法为搜索栏的取消按钮设置图像 我得
  • 由 IIS 提供服务时,Fontawesome 无法工作

    当我将应用程序放在 IIS7 服务器上时 FontAwesome 对我不起作用 在 Firefox 中 请求的 URL 被编码为http l2etest kema intra fonts fontawesome webfont ttf 3F
  • Spring RESTTemplate 的泛型

    我有一堂这样的课 public class Wrapper
  • Python Pandas 复制数据框中的行

    如果数据框看起来像 Store Dept Date Weekly Sales IsHoliday 1 1 2010 02 05 24924 5 FALSE 1 1 2010 02 12 46039 49 TRUE 1 1 2010 02 1
  • 使用 SafeNet eToken 自动进行扩展验证 (EV) 代码签名

    我们最近购买了 DigiCert EV 代码签名证书 我们可以使用signtool exe 对 exe 文件进行签名 但是 每次我们签署文件时 它都会提示输入 SafeNet eToken 密码 我们如何通过在某处存储 缓存密码来自动化此过
  • Android中位图压缩后如何保存Exif数据

    按照相机意图拍摄照片后 我压缩位图以减小文件大小 问题是压缩后 它会丢失所有 EXIF 数据 我检索原始 EXIF 数据没有问题 但是 如何在压缩后将此 EXIFF 数据添加到字节数组中 我的猜测是采用字节数组并创建它的位图 然后添加旧的
  • jQuery 1.9.0 破坏 $.attrFn 对象

    我编写了一个有用的 移动 事件库 可以在这里找到 它本质上统一了触摸事件 以便单个事件可以绑定到一个元素 并且无论用户的设备 即移动设备或桌面设备 如何 它都会触发 代码一直运行良好 但是在调试用户的问题时 我注意到使用 jQuery 1
  • ShadowRoot.getSelection()?

    我有一个丰富的编辑器 我正在将其重写为 lit element 自定义元素 我使用 Firefox 最新 进行测试 我试图在自定义元素的 ShadowDom 中选择内容可编辑元素 在方法中 在 Firefox 调试器中 this shado
  • 如何使用 Python 将换行符写入 csv 中“\n”?

    我需要重新定义以下代码 以便行数据中的任何换行符 将显示为空行 显示为 n 书面文件中 然而 n 需要在每行之后写入以显示为空行 显然 每一行都需要编码为 utf 8 以避免错误 with open csvfile csv w as csv
  • C# 序列化和反序列化json到txt文件

    我在用着牛顿软件用于在我的 wpf 应用程序中处理 json 我有一个可以保存到txt 文件的客户 不涉及数据库 我这样做是这样的 public int store string reservation JObject customer n
  • 为什么我们使用数组而不是其他数据结构?

    在我编程时 我还没有看到数组比其他形式更适合存储信息的实例 我确实认为编程语言中添加的 功能 已经对此进行了改进 并由此取代了它们 我现在发现它们并没有被取代 而是被赋予了新的生命 可以这么说 那么 基本上 使用数组有什么意义呢 这并不是说
  • C++ 中宏相对于内联的优势

    我们知道内联是有利的 因为它们由编译器检查 并且与宏相比 作为参数传递时相同的操作 如 x 不会计算多次 但在一次采访中 有人问我在 C 中宏更适合内联的具体优点或情况 有谁知道答案或者可以思考这个问题 我唯一能想到的是 您可以使用宏来完成
  • 获取 iPhone 的物理屏幕尺寸(以英寸为单位)

    如何以编程方式获取以英寸为单位的屏幕尺寸 例如 iPhone 4 3 5 英寸 我找到了一种通过检测 iPhone iPad 型号来做到这一点的方法 但硬编码不是我想要的 所以我不看这样的东西 Swift 4 屏幕版本 let scale
  • mongodb c# API V2:ReplaceOne 和 FindOneAndReplace 之间的区别

    查看 mongodb 文档 我读到 FindOneAndReplace 将是一个原子操作 但我不明白的是为什么 ReplaceOne 不是原子的 如果存在差异 为什么还要使用 ReplaceOne 该文档揭示了一个不同的方法签名 替换一个
  • 读取文件直到Python中的特定字符

    我目前正在开发一个应用程序 该应用程序需要从文件中读取所有输入 直到遇到某个字符 通过使用代码 file open Questions txt r c file readlines c x strip for x in c 每次脱衣相遇 n
  • 从不同的基类重载同名的虚函数。是否可以? [复制]

    这个问题在这里已经有答案了 标题可能令人困惑 假设我们有以下设置 class A public virtual void fn 0 class B public virtual int fn class C public A public