我正在开发一个带有 .h 文件和 .cpp 文件的项目。我正在编写一个函数,我想利用函数指针数组,其中数组中的每个函数都基于与枚举相关的条件被调用。我已经在我的 .h 文件中声明了 5 个函数和数组本身。我应该在哪个文件中将数组的每个值设置为等于相应的函数(.h 或 .cpp)?
问问题
440 次
2 回答
1
如果数组定义本身在 .h 文件中,我预测您会遇到问题。
您应该在 .c 文件中定义数组(连同值的设置)。
并在 .h 文件中将数组声明为 extern,如下所示:
extern func_pointer_t array[];
但是全局变量通常是一个坏主意,您应该考虑提供一个 API 来从数组中获取函数指针。
func_pointer_t get(unsigned int i);
于 2012-10-17T23:03:14.447 回答
1
通常,变量赋值发生在“.cpp”文件中。如果你需要它全局,你可以把一些东西放在一个 .h 文件中。
另外,请注意,数组中只能存在一种函数指针类型。换句话说,所有函数必须具有相同的签名。
如果将数组更改为保存函数对象或指向函数对象的指针,则可以有多种从基本函数对象派生的函数对象。
另见std::vector
和std::map
。
于 2012-10-17T23:03:21.343 回答