带括号的成员函数地址错误

2024-03-08

我发现了一些有趣的事情。错误消息说明了一切。获取非静态成员函数的地址时不允许使用括号的原因是什么?我在 gcc 4.3.4 上编译它。

#include <iostream>

class myfoo{
    public:
     int foo(int number){
         return (number*10);
     }
};

int main (int argc, char * const argv[]) {

    int (myfoo::*fPtr)(int) = NULL;

    fPtr = &(myfoo::foo);  // main.cpp:14

    return 0;

}

错误:main.cpp:14:错误:ISO C++ 禁止采用未限定或带括号的非静态成员函数的地址来形成指向成员函数的指针。说“&myfoo::foo”


从错误消息来看,似乎不允许您获取带括号的表达式的地址。建议你重写

fPtr = &(myfoo::foo);  // main.cpp:14

to

fPtr = &myfoo::foo;

这是由于规范 (§5.3.1/3) 的一部分内容如下

仅当使用显式 & 并且其操作数是限定 ID 时才会形成指向成员的指针不包含在括号中 [...]

(我的重点)。我不确定为什么这是一条规则(而且直到现在我才真正知道这一点),但这似乎是编译器抱怨的。

希望这可以帮助!

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

带括号的成员函数地址错误 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • SQL 查询中的 MS Access VBA 数据类型不匹配错误

    我目前有以下 MS Access SQL 查询 它是 Access VBA 函数的一部分 它是在以下人士的帮助下建造的上一个问题 https stackoverflow com questions 38903010 how to sql j
  • org.apache.commons.exec.ExecuteException:进程因 ChromeDriver Chrome Selenium 和 TestNG Suite 错误而退出

    当我通过 TestNG XML 执行 TestNG 套件时 我观察到以下错误 严重 org apache commons exec ExecuteException 进程退出 一个 错误 1073741502 退出值 1073741502
  • 如何过滤elasticsearch全局聚合?

    我想要实现的目标 我希望我的 年龄 聚合不被查询过滤器过滤 并且我希望能够对其应用过滤器 因此 如果我从这个查询开始 query filtered filter terms family name Brown filter 1 aggs y
  • 如何使用 msiexec 将 MSI 安装到特定目录中?

    我想使用 msiexec 将 MSI 文件安装到特定目录中 我在用 msiexec i msi path INSTALLDIR C myfolder qb 使用 INSTALLDIR 无法正常工作 因为 MSI 安装到默认路径而不是指定路径
  • 使用 Map 实现 Trie

    我今天正在解决一个问题 但我被困住了 我知道特里树是如何工作的 但问题是我知道如何用静态数组和类来实现它 今天在网上冲浪时我读到有一种方法可以使用 stl map 来实现 attempts 我今天尝试了 但我仍然不知道如何在 int 上插入
  • 抽象和封装之间的区别?

    封装和抽象之间的确切区别是什么 这里的大多数答案都集中在 OOP 上 但封装开始得更早 每个函数都是一个封装 https en wikipedia org wiki Encapsulation 28computer programming
  • 如何在 Linux 上从网络摄像头捕获静态图像

    我正在尝试为 Linux 编写一个 C Qt 程序 其中我从网络摄像头拍摄静态图像照片 对照片进行一些转换 裁剪 调整大小等 然后将其保存到 jpeg 文件 但我遇到了一些问题 主要问题是标准 UVC USB 视频设备类 Linux 驱动程
  • SVG + Matrix3d 在不同浏览器中呈现不同的效果

    我正在使用 3d 矩阵和 svg 转换对象 但相同的矩阵在不同的浏览器中呈现不同的效果 这是示例 http jsfiddle net dexus kcwrjgew http jsfiddle net dexus kcwrjgew
  • Mongoose默认排序顺序

    有没有办法在 Mongoose 中指定模式 模型级别的排序顺序 我有模型Posts 我总是获取按以下顺序排序的帖子 createdAt 场地 因此 在每个查询中我必须写 sort createdAt 我可以将此订单设为该型号的默认订单吗 在
  • 通过 VBA 迭代切片器并每次选择一个项目

    我的电子表格中有几个切片器 我希望能够通过 VBA 循环其中一个 并一一选择每个选项 下面的宏对我疲惫的眼睛来说似乎很好 但当我运行它时它显然不起作用 当我在下面的 BREAKPOINT 标记处添加断点时 第一个项目被选中 但随后宏转到第二
  • iOS 11:导航控制器内带有滚动视图的弹出视图控制器和不透明的导航栏会导致过渡期间出现奇怪的内容动画

    带有不透明导航栏的导航控制器内带有scrollView的弹出视图控制器会在转换过程中导致奇怪的内容动画 在转换过程中 内容将低于其原始位置 交互式弹出将使这一点变得非常明显 启用安全区域并不能解决此问题 我相信这是 iOS 11 中的一个错
  • Python:While、if、else 计数

    我对 while if 语句有一些疑问 我有一个值列表 通常这些值是字符串 但有时它可以返回 None 这是我的两个尝试 x One Two Three None None New count 0 for y in x while isin
  • R函数返回包的许可证?

    我想返回 R 包的描述文件中声明的包许可证 理想情况下我宁愿拥有 CRAN 自动添加到它识别的所有通用许可证中的 URL 我意识到我可以获得 R 本身分发的许可证 license 令人惊讶的是 这不适用于包裹 例如许可证 包名 此数据也不是
  • jEdit 可以用作 IDE 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 两个浏览器选项卡之间共享变量范围? [复制]

    这个问题在这里已经有答案了 我有一个带有 HTML 表单的 Web 应用程序 其中包含一个选择 选项条目 它在包含 200 个项目的演示中运行良好 即使找到您想要的项目很笨拙 但实际上有超过 30000 个项目 这是零件清单 我的第一个想法
  • MySQL:检查某个值是否包含在范围区间内

    我想知道是否可以检查字符串值是否包含在列中 前提是该列包含开始值和结束值 例如 如果表的 NR 列包含以下行 400 50045 76 23 2512 14 19 21 我想找到其中包含值 421 的行 所以答案应该是第一行 这在mysql
  • 位置固定和-webkit-overflow-scrolling:触摸;

    我正在使用 css 技巧让网站感觉像 Cordova 中的应用程序 webkit overflow scrolling touch 然而 这打破了 消失 反弹 我的位置 固定元素 有什么想法吗 仅供参考 Safari 在 ios 8 上运行
  • PHP 全局命名空间别名

    这是场景 我正在将命名空间实现到我的项目中 我有自己的自定义桥接库 它调用 Zend 等其他库来完成繁重的工作 我在自定义桥库中使用完全限定的命名空间没有问题 但希望在控制器 模型和视图中保持代码尽可能简洁 这是我想使用的一些别名的示例 u
  • 使用flask-wtf queryselectfield进行更具体的SQL查询

    我想使用 Flask 和 WTF 创建一个登录表单 应用程序应从数据库表中读取所有用户的昵称并将其显示在 QuerySelectField 中 它确实有效 但我认为我可以以 更好的方式 做到这一点 我有一个这样的数据库表 id nickna
  • 带括号的成员函数地址错误

    我发现了一些有趣的事情 错误消息说明了一切 获取非静态成员函数的地址时不允许使用括号的原因是什么 我在 gcc 4 3 4 上编译它 include