如何用C++兼容的语法转换C函数调用
How to convert a C function call in C++ compatible syntax?
我有一个关于*处理程序函数的问题,我不明白这是什么,而且在代码中没有这个函数的声明。我在C modesReadFromClient(client *c, char *sep, int (*handler)(client *));
中有这个代码
现在我想在C++
中使用这个。在头文件中,我有这个代码-
void modesReadFromClient(client *c, char *sep, int (*handler)(client *));
在源文件中这个代码-
void MainWindow::modesReadFromClient(struct client *c, char *sep,
int(*handler)(struct client *))
但我有一个错误-
无效使用非静态成员函数
modesReadFromClient(c,"n",HexMessage);
我认为int* handler
出了问题。如何将此代码翻译成C++?
它只是一个函数指针,然后可以从modesReadFromClient();
函数中调用handler()
。
申报
int (*handler)(struct client *)
使handler
成为函数指针,然后可以像这个一样调用handler
struct client *someClient;
int handlerResult;
/* initialize someClient */
handlerResult = handler(someClient);
如果你有一个像这样的处理程序函数
int handlerFunction(struct client *c)
{
/* do somthing with 'c' */
}
然后你可以打电话给
modesReadFromClient(c, "n", handlerFunction);
为了在C++中调用非静态函数,请声明该类的一个实例并在该实例上调用该函数。
MainWindow mainWindow;
mainWindow.modesReadFromClient(...);
相关文章:
- 转换包含向量 C++ 的语法和结构
- 这个typedef和转换运算符语法是什么意思
- n-ary布尔语法从中缀到前缀的Boost::Spirit转换?
- 英里到千克转换器练习的小语法错误
- 将强制转换运算符重载到 std::map 的正确语法是什么
- 此语法中的构造函数转换错误
- 如何将Mongo Shell命令转换为Mongocxx语法
- 我如何将此C语言语法转换为C
- 将 AT&T 语法转换为英特尔语法 (ASM)
- C 语法:所请求的从某些_type转换为非scalar_type
- 如何用C++兼容的语法转换C函数调用
- 为什么在使用初始化语法时不调用转换运算符,为什么 clang 错误消息看起来是错误的
- 如何将此C++代码转换为 C# 代码?我忘记了什么语法
- void * 转换为 int 语法的问题
- C++语法:使用typedef进行类型转换
- 如何在VC++中将TChar[]数组转换为std::string.语法帮助
- 是否有任何应用程序可以将PyQt(带有Python语法)项目转换为Qt(带有c++语法)项目
- ' auto x = type{…} '初始化语法和'显式'转换操作符- clang vs gcc
- 语法转换为Lex/Yacc
- c++初学者:将索引语法转换为迭代器语法