C++ 重载虚函数发出 clang 警告?

2024-03-03

clang 在编译以下代码时发出警告:

struct Base
{
    virtual void * get(char* e);
//    virtual void * get(char* e, int index);
};

struct Derived: public Base {
    virtual void * get(char* e, int index);
};

警告是:

warning: 'Derived::get' hides overloaded virtual function [-Woverloaded-virtual]

(当然需要启用上述警告)。

我不明白为什么。请注意,在 Base 中取消注释相同的声明会关闭警告。我的理解是,由于两个 get() 函数具有不同的签名,因此无法隐藏。

叮当是对的吗?为什么?

请注意,这是在 MacOS X 上运行最新版本的 Xcode。

clang --version
Apple LLVM version 5.0 (clang-500.1.74) (based on LLVM 3.3svn)

更新:与 Xcode 4.6.3 的行为相同。


此警告是为了防止在打算覆盖时意外隐藏过载。考虑一个稍微不同的例子:

struct chart; // let's pretend this exists
struct Base
{
    virtual void* get(char* e);
};

struct Derived: public Base {
    virtual void* get(chart* e); // typo, we wanted to override the same function
};

由于它是一个警告,并不一定意味着它是一个错误,但它可能表明一个错误。通常,此类警告有一种方法可以通过更明确地关闭它们,并让编译器知道您确实想写什么。我相信在这种情况下您可以执行以下操作:

struct Derived: public Base {
    using Base::get; // tell the compiler we want both the get from Base and ours
    virtual void * get(char* e, int index);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 重载虚函数发出 clang 警告? 的相关文章

  • 实体框架一对多关系

    我的 EF 查询大约需要 3 秒才能获取 10 个玩家 因为它获取另一个表的所有 500k 行 而不是我需要的少数行 这是玩家实体 namespace RocketLeagueStats Database Entities Table pl
  • 是否有与 SQL Server newsequentialid() 等效的 .NET

    我们使用 GUID 作为主键 您知道默认情况下它是集群的 将新行插入表中时 它将插入表中的随机页 因为 GUID 是随机的 这会对性能产生可衡量的影响 因为数据库始终会分割数据页 碎片 但我使用顺序 GUID 的主要原因是因为我希望将新行插
  • 当用户与 DateTimePicker 控件交互时会引发什么事件?

    我是 C 新手 在我的程序中使用 DateTimePicker Value Changed 事件 但我发现当用户单击箭头时发生 ValueChanged 事件 或者如果也以编程方式更改值 我只想识别 DateTimePicker 的用户交互
  • C# 中的 DateTime.Parse 抛出异常

    我不知道为什么抛出异常 这是工作代码 DateTime Parse 1 12 2012 12 00 00 AM 这是抛出异常的一个 DateTime Parse 1 13 2012 12 00 00 AM 抛出的异常是 格式异常 包括此消息
  • 将整数四舍五入到最接近的 10 倍数[重复]

    这个问题在这里已经有答案了 我想弄清楚如何对价格进行四舍五入 双向 例如 Round down 43 becomes 40 143 becomes 140 1433 becomes 1430 Round up 43 becomes 50 1
  • ASP.NET Core 测试 - 没有方法 'public static IHostBuilder CreateHostBuilder(string[] args)

    我正在尝试在测试中设置我的应用程序并在中使用Startup s Configure method context Database EnsureCreated 并期待着Sqlite文件出现在Test sbin文件夹 这是我的代码 using
  • EntityFramework:“参数值超出范围。”

    我在 EntityFramework 模型优先 中保存小数时遇到问题 在我的 EDMX 中 我声明我的属性为 Decimal 30 10 然后我尝试保存该数字 1215867935736100000 结果是 Parameter value
  • 使用工作表作为数据源的 VSTO Excel 的简单示例

    我想我遇到了 最简单的答案是最难找到的答案 的情况 而且我还没有遇到过任何搜索能够以直接的方式给我这个答案 这是为了Excel 2010 and VS 2010在现有 VSTO C 项目中 我有一个 Excel 工作表 其中包含 4 列数据
  • 如何从 UNC 中提取服务器名称

    谁能告诉我如何从 UNC 中提取服务器名称 ex 服务器名称 目录 目录 编辑 我很抱歉 但看起来我需要澄清一个错误 路径实际上更像是 服务器名 d 目录 我知道这可能会改变一些事情 怎么样Uri Uri uri new Uri serve
  • 如何获取字符串宽度

    我需要在类库中构建一个函数 该函数接受一个字符串和该字符串的特定字体 然后获取字符串的宽度 那么我怎样才能得到字符串边界宽度呢 另一种方法是使用TextRenderer 并致电its MeasureString http msdn micr
  • Python NET 调用具有返回值和输出参数的 C# 方法

    我有以下静态 C 方法 public static bool TryParse string s out double result 我想使用 Python NET 包从 Python 调用它 import clr from System
  • 将迭代器取消引用到临时范围时出现非指针操作数错误

    Using auto empty line auto str return str size 0 我们做得到 auto line range with first non empty ranges view drop while range
  • 如何为用户提供给定 boost::spirit 语法的自动完成建议?

    我正在使用 Boost Spirit 在我的 C GUI 应用程序中为非技术用户构建简单的 数据过滤器 语言 语言与纯英语非常相似 并且可以解析为 AST 我被要求使该过程尽可能对用户友好 因此我希望提供类似 CLang 的错误消息 无法识
  • 在javascript中调用c#函数[重复]

    这个问题在这里已经有答案了 可能的重复 从 Javascript 调用 ASP NET 函数 https stackoverflow com questions 3713 call asp net function from javascr
  • 使用 PrimarySearcher.FindAll() 时出现内存泄漏

    我也有一个使用插件和应用程序域长时间运行的服务 并且由于使用目录服务而出现内存泄漏 请注意 我正在使用 system directoryservices accountmanagement 但据我了解 它使用相同的底层 ADSI API 因
  • 在 Qt C++ 中使用多个键

    我正在构建 坦克 游戏 我使用关键事件在地图上运行我的坦克 实际上我当时只能使用一把钥匙 但我需要有能力去完成任务 同时向上和离开 这是我的单键事件代码 switch event gt key case Qt Key Up if ui gt
  • SoapHttpClientProtocol:以流而不是字符串的形式获取响应?

    我正在使用一种网络服务 它可以一次性输出大量数据 响应字符串可能约为 8MB 虽然在台式电脑上这不是问题 但嵌入式设备在处理 8MB 字符串对象时会发疯 我想知道是否有办法以流的形式获取响应 目前我正在使用如下方法 我尝试使用 POST 请
  • 使用 std::set 时重载运算符<

    这是我第一次使用 std set 容器 并且我对操作符 std less 遇到了问题 我声明该集合 std set
  • 使用 STL 迭代器而不初始化它

    我想做这样的事情 container iterator it NULL switch eSomeEnum case Container1 it vecContainer1 begin break case Container2 it vec
  • 有没有 C# 到 C 的转换工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道 C 与 NET Framework 不同 C 是一种符合 ECMA ECMA 334 和 ISO

随机推荐

  • @PostFilter 和 @PreFilter 在 Spring Security 中如何工作?

    作为 Spring 安全注释的新手 我需要对以下代码进行澄清 PostFilter hasPermission filterObject READ or hasRole ROLE ADMIN public List
  • CDI 适用于常规 Java 应用程序吗?

    我有一个简单的 Maven 项目 包含三个类 在我的META INF我有我的空beans xml 每次我运行我的Main java我得到一个NullPointerException Exception in thread main java
  • 删除的 zip 文件会导致 e.Data.GetData("FileContents") 引发异常

    我正在尝试在 WPF 应用程序中为从 zip 存档中拖动的文件实现一个处理程序 处理程序应获取文件内容以进行进一步处理 我的环境 Windows7 安装7 zip Visual Studio 2012 Express Net 4 5 下面是
  • CakePHP 多重选择“选定”不起作用

    我的编辑表单中有一个多重选择输入 当回声时 selected变量将如下所示 MySQL PHP 但是 输入不会自动选择与标签匹配的选项 但是 当我手动输入所选选项时 它会自动选择这两个选项 例如
  • 亚马逊AWS通过Java API创建EBS(弹性块存储)

    我正在尝试找到一种方法来创建新的 EBS 并通过 AWSJavaSDK 以语法方式将其附加到正在运行的实例程序 我看到了使用命令行工具和基于休息的调用来做到这一点的方法 但没有办法通过正确的 SDK 你应该能够使用创建卷 http docs
  • Azure AD 与 sonarqube 集成

    我使用 nginx 反向代理在 https 上运行 sonarqube 这是我的 nginx 反向代理配置 server server name sonarqube mydomain co in access log var log ngi
  • ASP.net 模型视图演示器值得花时间吗?

    我这个周末正在阅读有关 ASP net MVP 模式的内容 似乎即使是最简单的任务也会花费太多精力 如果以 MVP 模式进行 回报似乎是在更大的项目中 但我想 如果我将会追随MVP 为什么不直接用 ASP net MVC 来做这个项目呢 我
  • 如果是 Chrome,请使用 WebP

    因为目前只有 Chrome 和 Opera 支持 WebP 所以我想知道是否可以针对这两个特定浏览器并将它们重定向以获取我网站的另一个版本 以便我可以帮助更快地优化我的网站下载速度 Thanks 我这样解决了这个问题 检查客户端是否在 Ac
  • 同时显示选项卡栏和列表操作栏。 (安卓蜂巢)

    有一种情况 我想在操作栏中同时使用选项卡栏和列表导航 文档说 我们可以将 Actionbar 置于列表导航模式或选项卡导航模式 有没有办法同时使用两者 任何指示 帮助 先感谢您 抱歉 您只能选择其中之一 话虽这么说 你可以使用android
  • Select2 4.0.x 多复选框 JS 插件

    我正在使用Select2控制与Select2 Multi checkboxes JS插件允许多复选框选择 以下演示显示该控件可以正常工作选择2 3 x http jsfiddle net wasikuss gx93rwnk http jsf
  • 如何以编程方式检查 iPhone 中是否安装了应用程序列表

    在我的应用程序中 我显示了应用程序列表 是否有可能发现 iPhone 中是否安装了应用程序数组 如果有可能 请有人快速提供相关代码来检查 iPhone 中是否安装了一系列应用程序 在过去你可以使用canOpenURL像这样的图书馆iHasA
  • .net 8 预览版 Linux 上托管的 Azure 应用服务无法启动,显然要求安装 8.0.0-rc

    最后 App Service 可以在 Linux 容器下的 NET 8 Preview 上运行 尚不支持 Windows 我创建了一个并部署了一个简单的应用程序 但容器没有启动 如下所示 2023 09 17T20 25 27 314076
  • Google 应用内支付:如何处理 Google 的回发 JWT

    也许这是一个愚蠢的问题 但我不是高级程序员 我有 已成功为我的应用程序设置应用内付款 但它只能工作 不使用回发 url 我已经在谷歌上搜索了很多个小时 试图自己解决这个问题 但没有 成功 希望有人能帮助我 我已经包含了脚本 处理发布数据这显
  • 创建模型时使用外键自动创建模型 - Django

    我正在我的网页上创建评论部分 并希望用户能够对评论投赞成票或反对票 我的模型是这样的 class Comment models Model owner models ForeignKey User body models TextField
  • Windows attrib 命令行程序不会删除只读属性?

    我使用 windows attrib 命令删除目录只读属性并将其设置回来 如下所示 attrib r C build attrib C build C build attrib r C build attrib C build R C bu
  • 原始浮点编码

    Update原来的问题不再是这个问题的适当问题 所以我将单独保留这个问题来演示我尝试 学到的内容和背景 很明显 这不仅仅是一个 Base64 变体 而且涉及更多一些 背景 我使用 python 3 x 进行编程主要是为了与开源程序 Blen
  • 在日期/时间调用方法

    我正在寻找一个modern在给定日期 时间执行给定方法的方法 ZonedDateTime尤其 我知道Timer类和Quartz库 如下所示 线程包括完整的解决方案 Java 在特定日期执行方法 关闭 https stackoverflow
  • 如何将 Firestore 数据库从 Google 存储桶导出到 Json 文件

    情况如下 我有一个 Firestore 数据库 我每天都会将其下载到 Google Cloud Storage Bucket 作为备份 如果我想在本地下载它 我使用这个命令gsutil m cp r gs BUCKET PATH DESTI
  • ngrx/data 实体数据服务

    尝试理解ngrx data实体数据服务示例here https ngrx io guide data creating entity data services 其中显示 创建实体数据服务 在展示该服务之后 文档继续展示如何在组件中使用 n
  • C++ 重载虚函数发出 clang 警告?

    clang 在编译以下代码时发出警告 struct Base virtual void get char e virtual void get char e int index struct Derived public Base virt