重载超类的函数

2023-11-21

C++ 标准中是否有某些内容阻止我重载超类的函数?

从这对类开始:

class A {            // super class
    int x;

public:
    void foo (int y) {x = y;}  // original definition
};

class B : public A { // derived class
    int x2;

public:
    void foo (int y, int z) {x2 = y + z;}  // overloaded
};

我可以打电话B::foo() easily:

    B b;
    b.foo (1, 2);  // [1]

但如果我尝试打电话A::foo() ...

    B b;
    b.foo (12);    // [2]

...我收到编译器错误:

test.cpp: In function 'void bar()':
test.cpp:18: error: no matching function for call to 'B::foo(int)'
test.cpp:12: note: candidates are: void B::foo(int, int)

为了确保我没有遗漏什么,我更改了名称B的函数,这样就不会出现过载:

class B : public A {
    int x2;

public:
    void stuff (int y, int z) {x2 = y + z;}  // unique name
};

现在我可以打电话A::foo()使用第二个例子。

这是标准吗?我正在使用 g++。


您需要在类的定义中使用 using 声明B:

class B : public A {
public:
    using A::foo;          // allow A::foo to be found
    void foo(int, int);
    // etc.
};

如果没有 using 声明,编译器会发现B::foo在名称查找期间,实际上不会搜索基类以查找具有相同名称的其他实体,因此A::foo没有找到。

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

重载超类的函数 的相关文章

  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 循环遍历 C 结构中的元素以提取单个元素的值和数据类型

    我有一个要求 我有一个 C 语言的大结构 由大约 30 多个不同数据类型的不同元素组成 typedef struct type1 element1 type2 element2 type3 element3 type2 element4 1
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh

随机推荐

  • MPAndroidChart 具有 3 个数据集的折线图的多个工具提示/标记视图

    我目前正在使用MPAndroid图表对于我的申请 在一种情况下 我在一个折线图中显示三个数据集 当我单击图表上的线条时 我一次只能显示一个工具提示 相反 基于十字线位置 我想显示所有三个数据集的单独工具提示 I have gone thro
  • 在摩卡测试中调用异步函数时如何避免超时错误:超出了2000毫秒的超时

    在我的节点应用程序中 我使用 mocha 来测试我的代码 使用 mocha 调用许多异步函数时 出现超时错误 Error timeout of 2000ms exceeded 我该如何解决这个问题 var module require li
  • 动态嵌套对象数组的递归迭代

    我正在使用 Angular JS 及其示例之一 http jsfiddle net furf EJGHX 我需要在更新功能发生时获取数据 并在发送到服务器之前向其中添加一些值 如果用 Angular 而不是 js 来做这件事会更好 请告诉我
  • Git 推送时出现 Libcurl.dll 错误

    最近我安装了 Git 使用 Bit Bucket 作为存储库 我根据在网上找到的不同指南配置了所有内容 但是每当我使用该命令时git push u origin all我收到以下错误 无法在动态链接库 libcurl dll 中找到过程入口
  • 如何将“now() -interval '2 分钟'”之类的内容插入 PHP PDO 查询?

    我有一个这样的查询 在 Postgresql 8 4 PHP fpm 5 3 10 fpm fcgi 上 select from users where now interval 2 minutes lt seenlast ORDER BY
  • 将 k 列重塑为 2 列,表示 k 变量值的连续对

    我有一个像这样的数据框 id y1 y2 y3 y4 a 12 13 14 b 12 18 c 13 d 13 14 15 16 我想以这样的方式重塑 以两列结束 上面的例子将变成 id from to a 12 13 a 13 14 a
  • 如何使用 MATLAB 绘制邻接矩阵图

    我想创建一个图 显示邻接矩阵中节点之间的连接 如下所示 gplot似乎是最好的工具 但是 为了使用它 我需要传递每个节点的坐标 问题是我不知道坐标应该在哪里 我希望该函数能够为我找出一个好的布局 例如 这是我使用以下任意坐标的输出 A 1
  • 如何在没有 clojure.jar 的情况下从 Github 存储库在 Ubuntu 10.04 上安装 Clojure

    我一直在尝试在电脑上安装Clojure来学习和使用 我正在运行 Ubuntu 10 04 并安装了来自 Synaptic 的最新 Sun Java SDK 和环境 通过 Google 搜索 我发现了多个指南 这些指南非常清晰地指导了如何使用
  • WebRTC 数据通道服务器到客户端的 UDP 通信。目前可以吗?

    除了使用 UDP 之外 是否可以以模仿 WebSocket 功能的方式在 Node js 上使用 WebRTC 数据通道 本质上 我希望有一个运行 Node js 的服务器 浏览器客户端可以通过 JavaScript 建立全双工双向 UDP
  • 相当于 build-arg 的 --env-file 吗?

    我正在使用多个构建参数构建 Docker 映像 并且想知道是否可以将它们传递给docker build作为一个文件 以同样的方式 env file可以传递给docker run env 文件将被解析docker run自动并且变量在容器中可
  • 如何在Android中的线性布局周围显示阴影?

    如何显示线性布局的阴影 我想要白色圆形背景 线性布局周围有阴影 到目前为止我已经做到了
  • 着色器中包围体层次结构的遍历

    我正在使用 vulkan 计算着色器开发路径跟踪器 我实现了一棵树代表包围体层次结构 BVH 的想法是最大限度地减少需要执行光线相交测试的对象数量 1 简单的实施 我的第一个实现非常快 它遍历树到singleBVH 树的叶子 然而 射线可能
  • Android 设置 View.GONE 不会“释放”列表视图中的空间

    我有一个列表视图 其中包含一些可以标记为 完成 的项目 还有一个切换按钮显示 隐藏已完成的项目 但是 当我通过设置 setVisibility View GONE 隐藏项目时 列表中仍然留有空间 在列表视图中切换列表项应该不那么困难吧 将
  • Android IRC Office Hours 关于 Android 蓝牙 RSSI 的问题

    我对 Android 2 0 或 2 1 上的蓝牙 RSSI 功能有疑问 创建蓝牙连接时获取 RSSI 值很容易 但是如何重复获取已处于活动状态的连接的 RSSI 值呢 能够做到这一点非常重要 因为这可以让您确定蓝牙设备是否彼此靠近或远离
  • C# Selenium WebDriver FireFox 配置文件 - 使用带有身份验证的代理

    当您在下面的代码中设置代理服务器参数时 如果您的代理服务器需要身份验证 那么FireFox将带来身份验证对话框 基本上您无法自动填写它 那么有什么办法可以设置吗USERNAME and PASSWORD FirefoxProfile pro
  • ASP.Net MVC 授权操作过滤器

    我试图了解在 MVC Preview 4 中使用授权 Authorize 操作筛选器时错误处理的工作原理 我有一个看起来像这样的动作 Authorize Roles DOMAIN NOTAUTHORISED ROLE HandleError
  • 是否可以使用表单身份验证来保护 Web 服务的安全?

    我们正在寻求保护大量 ASP Net 2 0 asmx Web 服务的安全 将托管 Web 服务的表单已经经过身份验证 是否可以使用表单身份验证来保护 Web 服务的安全 实现这一目标的优点和缺点是什么以及其他可能的方法 我们当然不想在每个
  • 获取 MongoDB 数组字段中给定元素的索引

    想想这个 MongoDB 文档 id 123 food apple banana mango 问题 如何获得位置mango在食物中 查询应该返回2上面的内容 并且不要返回整个文档 请显示工作查询 从 MongoDB 3 4 版本开始我们可以
  • 从集合中删除文件

    我有一个目录 其中包含的文件要么属于构成 Qt 项目的集合 要么包含其他文件 也就是说 文件 A cxx ADriver cxx 和 A ui 都属于需要使用 Qt 选项进行编译的集合 然后我有一个非 qt 的文件 B cxx 然后C cx
  • 重载超类的函数

    C 标准中是否有某些内容阻止我重载超类的函数 从这对类开始 class A super class int x public void foo int y x y original definition class B public A d