我正在處理一個帶.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