-4
A
回答
2
是的,你可以考慮一下好的編程習慣!
話雖如此,編程中沒有教條。 我遇到過一些情況,其中包含一些其他的.h文件非常有效。
但只有當你有相當的經驗和很好的理由偏離時纔會這樣做。
作爲使用的頭文件的原因是:
C++的後繼C.傳統C和C++有沒有真正的模塊機制等例如Modula或Ada。原則上,多個C ++源文件是獨立編譯的,只有鏈接器在編譯完成後才能看到它們。通過將例如頭文件中的類聲明,頭文件成爲一種模塊接口。通過將頭部包含在定義類成員的模塊M的.cpp文件中以及使用該模塊M的其他模塊中,創建鏈接引腳。因此,編譯器可以檢查M中的聲明是否與其他模塊中的聲明匹配。這使交叉模塊類型檢查。
0
我還補充說,最重要的事實是,在C++中我們必須區分定義和聲明。如果編譯器加載了兩個相同的定義(函數或變量定義),則會拋出錯誤並結束編譯。如果我們想在許多獨立編譯的翻譯單元中使用相同的功能,那麼您需要聲明此功能。因此,我們把聲明放在一個.hpp文件中,這個文件可以被其他文件#include包含。在.cpp中放置定義(這意味着編譯器分配內存)。讓我們考慮全局變量或靜態變量,這些變量不能放在.hpp文件中,因爲如果編譯器在同一個名稱空間中遇到兩個相同的定義,則退出編譯。
相關問題
- 1. visual C++包含和鏈接庫
- 2. 使用包含php語句時的導航鏈接問題
- 3. 包含語句在鏈接步驟中的順序如何?
- 4. 包含if語句的語句錯誤
- 5. 鏈接sed語句
- 6. 縮短包含&和||的IF語句
- 7. VB DBNull解決方案,包含和不包含if語句
- 8. 包含在SELECT語句
- 9. 循環包含語句
- 10. 包含SQL SELECT語句
- 11. HTML包含if語句
- 12. 鏈接列表C中包含結構
- 13. C++鏈接列表包含()函數
- 14. 如何鏈接包含在C++中?
- 15. 問題和如果語句包含一個字符串在C++
- 16. Interface.GetMethods()在c#中包含get和set語句
- 17. cakephp:找到含有'包含'的語句
- 18. Erlang:接收包含多個超時子句的語句
- 19. 如果鏈接中包含的鏈接
- 20. Jquery - 刪除包含鏈接的鏈接
- 21. 如何提高語法包含語句
- 22. gcc包含路徑和符號鏈接
- 23. C語句常量含義
- 24. Rails:鏈接每個...語句
- 25. 鏈接IF/OR語句
- 26. jQuery鏈接if語句
- 27. PHP include_once鏈接導致在每個包含語句後創建不同的cookie
- 28. 如何在包含C/C++宏的行尾添加語句?
- 29. 如何在C/C++程序中包含SQL語句?
- 30. 哪些目錄在C/C++中包含語句搜索?
「是」,但是對於答案來說這有點簡短:)(儘管在通常支持之前實現整個程序優化有一些竅門) –
瞭解你在做什麼,爲什麼和如何做。然後就解決問題的最佳方式提出自己的結論。 –