0

我正在开发一个带有 .h 文件和 .cpp 文件的项目。我正在编写一个函数,我想利用函数指针数组,其中数组中的每个函数都基于与枚举相关的条件被调用。我已经在我的 .h 文件中声明了 5 个函数和数组本身。我应该在哪个文件中将数组的每个值设置为等于相应的函数(.h 或 .cpp)?

4

2 回答 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::vectorstd::map

于 2012-10-17T23:03:21.343 回答