““void (exeCallback::*)(int)”类型的值不能分配给“void (*)(int)”类型的实体”[重复]

2023-12-01

可能的重复:
禁用“错误的函数转换”警告

我试图让我的大脑围绕 C++ 函数指针。为了保持我的学习经验基础,我创建了一个测试函数指针示例。最终,我想通过引用传递所有就绪的实例化对象,以便我可以回调该对象的方法;然而,为了学习和理解,我想坚持 C++ 函数指针的基础知识。我仅使用 .cpp 文件创建了一个工作示例,但我没有成功的部分是在 .cpp 和 .h 中使用函数指针。使用 .cpp 和 .h 文件时,我没有正确执行哪些操作以使我的学习示例成功运行?

我创建了两个文件,exeCallback.h 和 exeCallback.cpp。

.h file

/*
File: exeCallback.h

Header file for exeCommand Library.
*/

#ifndef EXECALLBACK_H
#define EXECALLBACK_H

#include "mbed.h"

#include <map>

class exeCallback
{
public:
    exeCallback();

    void my_int_func(int x);

    void (*foo)(int);
private:
};

#endif

.cpp 文件:

/*
File: exeCallback.cpp

Execute functions in other Sensor libraries/classes

Constructor
*/

#include "mbed.h"
#include "ConfigFile.h"
#include "msExtensions.h"
#include "cfExtensions.h"
#include "exeCallback.h"

exeCallback::exeCallback()
{

    foo = &exeCallback::my_int_func;

    /* call my_int_func (note that you do not need to write (*foo)(2) ) */
    foo( 2 );

}

void exeCallback::my_int_func(int x)
{
    printf( "%d\n", x );
}

该错误告诉您正在尝试将指向成员函数的指针分配给指向(非成员)函数的指针。有关差异的更多信息,请参阅[此处](错误告诉您正在尝试将指向成员函数的指针分配给指向(非成员)函数的指针。)。看来你需要声明foo as

void (exeCallback::*foo)(int);

或者通过使用让您的生活更轻松std::function (or boost::function如果您没有 C++11 支持)。

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

““void (exeCallback::*)(int)”类型的值不能分配给“void (*)(int)”类型的实体”[重复] 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 想要从列表视图中删除所选项目

    我使用列表和数组适配器将字符串放入列表视图中 现在我想删除选定的项目 我尝试过以下代码 但效果不佳 我怎样才能解决这个问题 这是我的代码 TextView t1 String temp mylist ListView findViewByI
  • 在 UITableViewCell 上的多个 AVPlayerItem 中添加和删除观察者

    我正在尝试制作一个播放多个视频的表格视图AVPlayer and AVPlayerItem我需要为每个添加观察者AVPlayerItem这样我就可以跟踪playbackLikelyToKeepUp 属性 我尝试但失败的是在设置后添加观察者A
  • 运算符||或 |不能使用

    我正在尝试编译此代码 但我的编译器 BlueJ 告诉我 无法应用于 java lang string java lang string import java io import javax swing JOptionPane class
  • 重复 std::vector 的内容

    假设我有一个简单类型的向量 可能很大 例如 std vector
  • 如何在 C# 中将 System.Decimal 位转换为字符串?

    我希望能够从System Decimalvalue 然后将其转换为该值的字符串表示形式 就像Decimal ToString 可以 但我很难想出算法 所以我有这样的事情 decimal d 1403 45433M int nDecimalB
  • SAP JBOSS 的 jar 问题

    我正在尝试使用 ABAP 函数调用将我的 J2EE 应用程序与 SAP 软件连接起来 当我在 Eclipse 中使用热编码值将其作为单个类运行时 它工作得很好 当我尝试在 JBoss 服务器中运行它时 我从前端获取一些值并将其传递给我的 J
  • 如何将数字传递给 .hideRow()?

    我从以下位置得到了以下脚本 Mike Grace 的网站 Deletes rows in the active spreadsheet that contain Yes in column A function readRows var s
  • 如何在 Windows 版 Git 客户端中对 TFS 服务器进行身份验证?

    我们在公司域上设置了 TFS 2017 服务器 我想使用 Windows CMD 行的 Git 从该 TFS 服务器上的存储库推送和提取代码 我已将必要的证书添加到本地商店 以便通过 SSL 障碍 但现在当我尝试将远程存储库克隆到我的域加入
  • 圆形 UIButton

    我想知道是否可以绘制圆形 UIButton 不是圆角矩形 当我在自定义类型的 UIButton 中添加圆形图像时 它看起来像一个圆形按钮 但在单击按钮时 按钮的边界变得可见 因此它看起来像一个方形按钮 然后当单击结束时 它又看起来像一个圆形
  • Selenium 代理服务器参数 - 未知错误:net::ERR_TUNNEL_CONNECTION_FAILED

    希望你一切都好 我在尝试设置 chrome webdriver 时遇到了一些问题 我正在尝试更改网络驱动程序的参数以轮换用户代理和 IP 我将其用于抓取目的并且不想获得具有相同 IP 和 UA 的位置 当我通过 UA 参数时 一切正常 但是
  • 如何使div可拖动

    如何使元素可以在两个 div 之间拖动 这似乎是可拖动的应该做的事情 但我无法使用我拥有的代码 在这个 jsfiddle 中 我有两个带有可拖动元素的 div 我想让一个元素从第一个 div 转到第二个 div 许多网站上都必须存在该功能
  • jQuery DOM 对象的 x y 文档坐标

    我需要获取 DOM 元素的 X Y 坐标 相对于文档的顶部 左侧 我找不到任何可以为我提供这些的插件或 jQuery 属性或方法 我可以获得 DOM 元素的顶部和左侧 但这可以相对于其当前容器 父级或文档 你可以使用方面插件 已弃用 包含在
  • React Native {NativeModules} 未在 M1/Silicon mac 上导入 - 返回空对象 {}

    我试图在一个开发的项目中创建一个 React native 本机模块 BankedSdk M1MacBook 但是 任何初始化模块的尝试都会返回一个空对象 这是适用于我的示例 2020 存储库intel机器 https github com
  • Java 中的 PHP strtotime() ?

    我正在寻找一种简单的方法来从用户可能输入的任何类型的时间输入生成MySQL DATETIME PHP 的 strtotime 函数使这一切变得简单 它可以执行以下操作 strtotime 2004 02 12T15 19 21 00 00
  • Oracle:将字段标准化为 CSV 字符串

    我有一些一对多标准化数据 如下所示 a x a y a z b i b j b k 什么查询将返回数据 使得 多 端表示为 CSV 字符串 a x y z b i j k Mark 如果您使用的是版本 11gR2 而谁不是 那么您可以使用
  • 在VBA中重复随机变量

    如何使用 randomize 和 rnd 来获取随机变量的重复列表 通过重复列表 我的意思是 如果您运行循环来获取 10 个随机数 则列表中的每个随机数都将是唯一的 此外 如果再次运行该序列 您将获得与之前相同的 10 个随机数 来自微软自
  • Python 自定义比较器如何工作?

    我有以下 Python 字典 2 3 4 5 3 1 0 0 0 1 4 1 10 1 2 3 现在我想根据字典值的值之和对它们进行排序 因此对于第一个键 值之和为 3 4 5 12 我编写了以下代码来完成这项工作 def myCompar
  • Qt:制作不同颜色的堆叠条形图[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试在 Qt 中制作一个时间线 其中不同的颜色代表不同的任务 最终 它应该看起来有点像这样 但只有一行 现在有人知道如何在不安装额外库的情况下仅使用 QPaint 来做到这一点
  • Matplotlib:使用 twinx 叠加时箱线图和条形图会发生变化

    当我创建条形图并使用 twin x 覆盖条形图时 与条形相比 框看起来向右移动了一位 这个问题之前已经被识别过 Python pandas 绘制如果孪生两个 y 轴则移动 x 轴 但该解决方案似乎不再有效 我使用的是Matplotlib 3
  • ““void (exeCallback::*)(int)”类型的值不能分配给“void (*)(int)”类型的实体”[重复]

    这个问题在这里已经有答案了 可能的重复 禁用 错误的函数转换 警告 我试图让我的大脑围绕 C 函数指针 为了保持我的学习经验基础 我创建了一个测试函数指针示例 最终 我想通过引用传递所有就绪的实例化对象 以便我可以回调该对象的方法 然而 为