示例代码如下:
const vector<int>* (*seq_array[])(int) = {
fibon_seq, lucas_seq, pell_seq,
triang_seq, square_seq, pent_seq
};
我一步一步弄清楚声明:
*seq_array[]
是一个指针数组(*seq_array[])(int)
是int
的函数参数
3.所以const vector<int>* (*seq_array[])(int)
是一个返回 const vector<int>
的指针函数输入 int
参数。
如果我的理解是正确的,那么我找不到任何return
这个函数中的语句。
如果没有,任何人都可以指出我的错误并就复杂的声明符提供一些指导。谢谢。
最佳答案
seq_array
是 i) 一个数组 ii) 函数指针 iii) 采用int
并返回 const vector<int>*
强>。了解正在发生的事情的最简单方法之一是遵循所谓的 spiral rule。 .恕我直言,它是目前最好的助记法之一,即使是从 1994 年开始的。
关于c++ - 如何找出复杂的声明符,例如 Essential C++ Ch2.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430796/