gpt4 book ai didi

C++ 函数指针语法

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:28 25 4
gpt4 key购买 nike

我试图在 VC++ 中创建一个接受函数指针的函数,但我不断收到语法错误。

我的头文件中的声明如下所示:

 void ApplyFuncToCellsInSelection(void(*func)(CPoint, *CSpreadWnd));

定义如下:

void CSpreadWnd::ApplyFuncToCellsInSelection(void(*func)(CPoint, *CSpreadWnd)) { ... }

这是我收到的错误消息:

c:\...\spreadwnd.h(274) : error C2059: syntax error : 'function-style cast'
c:\...\spreadwnd.h(274) : error C2059: syntax error : ')'
c:\...\spreadwnd.h(274) : error C2143: syntax error : missing ')' before ';'

我知道这可能是我遗漏的一些非常简单的东西,但我似乎无法弄清楚。

最佳答案

为您的函数指针类型定义一个 typedef 通常是个好主意。它有助于在进一步的声明中使用它,并避免在编写错误时不得不更改它两次。在这里,您将星号放在了 CSpreadWnd 的错误一侧。

typedef void (*MyFuncPtr)(CPoint, CSpreadWnd*);
void ApplyFuncToCellsInSelection(MyFuncPtr func);

和定义:

void CSpreadWnd::ApplyFuncToCellsInSelection(MyFuncPtr func) { ... }

关于C++ 函数指针语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3397723/

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