Arm*_*ndo 3 c++ arrays pointers function-pointers
也许是一个愚蠢的问题,但我没有找到我想要的解决方案.基本上,我想声明一个指向函数指针的指针,该函数指针指向具有N个参数的函数,这些参数返回一个指向int的const指针.
下面的代码声明了一个指向函数指针的指针数组:
int *const (**fptr[10])(...); // (const int* || int const*) != int *const
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,唯一缺少的(我认为)是指向上面代码的指针.
我只是一个初学者而且我没有在制作中使用这种语法,我只是在学习C++时很开心.
谢谢,
阿曼多.
Soa*_*Box 11
答案是多级typedef,使其接近可理解.如果你今晚想到这一点,你仍然希望在早上能够理解它.
typedef int *const (*myFuncPtr)(...); // pointer to function taking ... and returning constant pointer to int
typedef myFuncPtr myFuncArray[10]; // array of function pointers
myFuncPtrArray *myMonstrosity ; // pointer to array of function pointers
Run Code Online (Sandbox Code Playgroud)
向后阅读可以帮助您了解我们宣称的内容.从右下角开始:我们有"myMonstrosity"指向myFuncPtrArray的指针,myFuncPtrArray是myFuncPtr的10个元素的数组,它是一个带有"..."指针的函数,它返回一个指向整数的常量指针.
您可能想要查看右 - 左规则.这种事情与C更密切相关; 由于虚函数,模板等原因,函数指针在C++中的使用较少.
此外http://cdecl.org是很有帮助的.我想出了这个:
int const * (**(*f)[10])( ... )
Run Code Online (Sandbox Code Playgroud)