This question already has an answer here:
Closed 5 years ago.
Factory Pattern: typedef Class *(createClassFunction)(void)
(1个答案)
我在C++Stult{}中遇到了一个我从未见过的声明。
有人能告诉我这是什么意思吗;
它看起来像是解引用了一个名为calcNormals的指针,但这就是我能理解的。
(1个答案)
我在C++Stult{}中遇到了一个我从未见过的声明。
有人能告诉我这是什么意思吗;
struct DerivedMesh {
char cd_flag;
void (*calcNormals)(DerivedMesh *dm); // <-- What is this?
它看起来像是解引用了一个名为calcNormals的指针,但这就是我能理解的。
最佳答案
这是用于声明function pointers的C语法。
在这个特定的例子中,DerivedMesh
将有一个成员calcNormals
它是一个指向接受DerivedMesh*
类型的单个参数的函数的指针。它可以像普通函数一样调用:
void foo(DerivedMesh* dm) { ... }
DerivedMesh dm;;
// Init members and set calcNormals to actual function
dm.cf_flag = whatever;
dm.calcNormals = foo;
dm.calcNormals(&dm); // calls foo
07-26 04:16