gpt4 book ai didi

c++ - 函数指针的定义

转载 作者:行者123 更新时间:2023-11-30 04:18:19 26 4
gpt4 key购买 nike

我正在使用一个 sdk,我必须在其中定义一个回调函数,问题是,“示例”代码附带了全局函数和非常程序化的方法。为了把它变成一个结构,我正在创建类。但是在定义和声明它时,我无法获得正确的参数语法 O_o

所以这是我的工作示例:

在我的代码.h中:

void   (*MessageHandler)(int msgType, char* msg){printf("\n%s\n", msg);}

这工作正常,当我调用我的 code.cpp 时

void (*opFunc)(int msgType, char* msg) =  MessageHandler;

但是我想在我的cpp中做定义,我找不到语法,通常应该是:

void (*Code::MessageHandler)(int msgType, char* msg){
printf("\n%s\n", msg);
}

但这不起作用,我找不到任何修复方法的提示。很高兴得到提示!

最佳答案

因为它是一个函数,所以像定义任何函数一样定义它:

void Code::MessageHandler(int msgType, char* msg){
printf("\n%s\n", msg);
}

它的名字,Code::MessageHandler其实就是一个正确类型的函数指针。如果 Code 是一个 namespace,这将按预期工作,如果它是一个 class,则必须将其声明为 static 获取未绑定(bind)的引用。

此外,考虑使用 typedef 使源代码更具可读性。

关于c++ - 函数指针的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com