C++:指向另一个类函数的函数指针

2023-12-01

我有2节课

class B {
public:
    int func(int i);
};

class A {
public:
    typedef int (B::*fPtr)(int);
    void run();
    B* mB;
};

void A::run() {
    // create a pointer
    fPtr p = &(B::func);
    // invoke the function
    mB->*p(2);     <------- Compilation Error
}

我需要的是在 A 的 run 函数中创建一个指向 func() 的指针。我收到编译错误,指出 mB 不对应于具有 1 个参数的函数。

请帮忙


您需要在函数表达式两边加上括号:

(mB->*p)(2);

但正如其他人指出的那样,几乎肯定有更好的方法来完成您想做的事情。

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

C++:指向另一个类函数的函数指针 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 安装 UWP,无需开发者模式和旁加载

    在非商店的win10 UWP中 安装应用程序应打开开发者模式或侧载模式 然而 我公司的安全级别很高 我无法更改目标笔记本的任何设置 具体来说 这些笔记本在更新和安全方面甚至不 适合开发人员 我的工作是使用 UWP 为公司创建一个自动 wif
  • Google Earth Engine 中带有 map() 函数的双循环

    In Google 地球引擎开发人员指南 有一个建议要避免for 循环 他们建议使用map 函数如本例所示 to avoid var clientList for var i 0 i lt 8 i clientList push i 1 p
  • 如果用户禁用了应用程序的推送,是否可以实现无声远程通知?

    在我的设置选项卡中 我有一个特定功能的开关 可以根据 API 响应关闭或打开 在网站上 只有管理员有权打开 关闭 我可以每次在设置点击时进行 user API 调用来检查用户的当前设置 但有几个缺点 例如如果用户已经在设置中 则它不会更新
  • 使用 pyspark 进行条件聚合

    考虑以下作为数据框 a b c d e africa 123 1 10 121 2 africa 123 1 10 321 98 africa 123 2 12 43 92 africa 124 2 12 43 92 usa 121 1 1
  • 仅运行最后一个任务!

    我迫切希望找到解决问题的方法 以下是为中的每个项目生成不同任务的代码List
  • 如何在android中获得相机的权限。(特别是Marshmallow)

    嘿 我正在 android studio 中设计一个应用程序 其中我需要相机的许可 我已经包括了
  • GWT div aria-hidden 不隐藏在 IE 中

    我用 GWT 编写了我的登陆页面 在 IE 中 我在其末尾看到了这个空带 我将其涂成绿色 以便您可以看到它 这只发生在 IE 中 我正在使用 IE9 进行测试 Chrome 中不行 Firefox 中不行 Safari 中不行 查看 DOM
  • 按后退按钮后文档已过期

    我有一个名为 a php 的页面 它有一个表单并通过 POST 将数据提交到同一文件 a php 页面加载时没有错误 然后我单击该页面上的任何链接 b php 或 b html 它像往常一样定向到任何页面 然后 当我单击 b php 或 b
  • nodejs child_process exec 'java -version'

    嘿 我正在 nodejs shell 中运行以下代码 exec require child process exec 现在我有 exec var 作为函数 然后我跑 exec java function error stdout stder
  • StorageEvent 在 Excel for Windows 中不起作用

    正如一些现有线程所建议的 例如 one two three 当前的对话框不提供API发送经常消息从主页 例如任务窗格 发送到对话框 所以我必须寻找解决方法 我们保留一个变量message in localStorage 然后我们使对话框选中
  • 空白CSS属性正在给flex带来问题[重复]

    这个问题在这里已经有答案了 我面临的问题是white space nowrap当有弹性容器时 有一个弹性container with flex direction row 其中有两个divsidebar使用设置一定的宽度flex 0 0 7
  • 压缩包含合并提交的前几十个 git 提交

    我有一个具有 root 权限的现有存储库R 然后是几十次提交 包括多次合并 最多X 然后线性历史直至Y 我想压碎一切R to X进入单个提交并强制推送它 我怎样才能做到这一点而不需要花费大量精力重新解决合并问题 或者 这个问题可以表述为更改
  • 使用 pandas 对 Python 中多个数据文件的数据进行平均

    我有 30 个 csv 数据文件 来自我运行的实验的 30 次重复运行 我正在使用熊猫read csv 函数将数据读入 DataFrame 列表 我想从此列表中创建一个 DataFrame 其中包含每列 30 个 DataFrame 的平均
  • 如何在画布中创建撤消功能?

    我有一个 HTML5 画布绘图板 我想创建一个具有撤消功能的按钮 我该怎么做 我的想法是拥有一个数组堆栈 每当您绘制并释放鼠标时 它都会通过推送将画布图像保存到撤消数组堆栈中 但当我尝试时 它并没有真正起作用 有更好的主意吗 先感谢您 va
  • SONAR 问题 - 关闭此 FileInputStream

    如何解决这个 SONAR 问题 关闭此 FileInputStream 提前致谢 File billFile new File filePath try BufferedReader br new BufferedReader new In
  • Angular 2 从外部数据引导应用程序

    如何仅在获取外部数据后加载 Angular 2 应用程序 例如 同一个 html 页面上有外部应用程序 我需要将一些数据传递到我的应用程序服务 想象一下 这就是API URL like some host api 在获取此信息之前 我的应用
  • 如何在jquery中迭代json数据

    如何在jquery中迭代json数据 id 856 name India id 1035 name Chennai id 1048 name Delhi id 1113 name Lucknow id 1114 name Bangalore
  • 具有动态 localName 值的 JacksonXmlRootElement

    我正在更新一个POJO我们映射到XML唯一的区别是有人想要旧的XML还有一些新的 唯一的区别是根包装器名称 所有相同的字段 例如当前根 Xml 标记设置为ExistingName他们想要一个新的值 比如BrandNewName具有所有相同的
  • Kendo-Knockout:调用一个方法,通过网格内的数据绑定从模板更改视图模型属性,打破绑定

    我正在使用 RPNiemeyer 的剑道淘汰库 我有一个剑道网格 里面有剑道模板 在模板中 有一个按钮使用剔除单击绑定 该按钮调用更改 viewModel 的方法 重现步骤 单击网格中的按钮 调用一个方法来更改 viewModel 的属性并
  • C++:指向另一个类函数的函数指针

    我有2节课 class B public int func int i class A public typedef int B fPtr int void run B mB void A run create a pointer fPtr