我正在处理一个带.h文件和.cpp文件的项目。我正在写一个函数,我想利用一系列函数指针,其中数组中的每个函数都是基于与枚举相关的条件调用的。我已经在我的.h文件中声明了5个函数和数组本身。我应该在哪个文件中设置数组的每个值等于相应的函数(.h或.cpp)?在C++中声明一个函数指针数组
回答
我预测如果数组定义本身在.h文件中,你会遇到问题。
你应该定义阵列(以及值的设置)在你的.c文件中。
而在.h文件声明数组作为一个外部的,就像这样:
extern func_pointer_t array[];
但全局是一般一个坏主意,你应该考虑得到一个函数指针提供了一个API的阵列。
func_pointer_t get(unsigned int i);
通常,变量赋值发生在“.cpp”文件中。如果你需要全局的话,你可以把一些东西放在一个.h文件中。
另外,请注意,数组中只能存在一个函数指针类型。换句话说,所有的功能必须具有相同的签名。
如果更改数组以保存函数对象或指向函数对象的指针,则可以有许多种基函数对象派生的函数对象。请参阅std::vector
和std::map
。
+1只是好奇,你能有一个指向函数指针的指针吗?如果是这样你的数组可以存储这些,不是吗? –
@ AK4749:与整数一样,指向整数指针的指针是* same *数据类型的另一个间接指针。每个*函数签名*被视为函数指针的不同类型。所以,指向函数指针的指针不会帮助需要指向* any *函数的人。 –
嗯是有道理的,如果我想过这种方式谢谢! –
- 1. C++指针数组声明
- 2. C++中的函数指针声明
- 3. 声明一个动态数组指针
- 4. 声明函数指针
- 5. 声明函数指针的
- 6. 声明函数指针
- 7. 疑函数指针声明
- 8. C++成员函数指针,声明
- 9. 数组指针声明
- 10. 声明指针数组字符数组
- 11. 如何声明一个函数用作c中的函数指针?
- 12. 如何声明一个返回函数指针的函数?
- 13. 声明一个N指针数组返回指向函数的指针返回指向字符的指针
- 14. 函数声明使用perl函数指针声明
- 15. 在C中声明指针
- 16. C++指针声明访问指针数组
- 17. 指针数组和指针指向一个数组在C++
- 18. 如何声明一个函数的指针,该函数返回一个指向C/C++中int值的数组的指针?
- 19. 声明,分配和分配指向函数指针的指针数组
- 20. 函数指针对象在C++中的前向声明
- 21. C++通过函数指针指向另一个函数指针
- 22. 向前声明一个指向结构的指针数组?
- 23. 如何声明一个函数来接受一个指向整数的指针
- 24. 如何在目标中声明指针数组c
- 25. 在cython中声明numpy数组和c指针
- 26. Objective-C - 如何在方法声明中实现指针数组
- 27. C++:声明指针
- 28. C++指针声明
- 29. 声明默认指针值的函数
- 30. 函数指针声明语法混淆
只能在H文件中放入cpp文件以外的内容。任何其他实体是否可以访问这些信息?如果是的话,.h如果不是,.cpp。有了这样一个简单的项目,它并不重要。 –
真是一个品味的问题。我会在头文件中初始化数组。 – m0skit0