-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. 包含語句在鏈接步驟中的順序如何?
- 3. HTML包含if語句
- 4. 包含在SELECT語句
- 5. 包含SQL SELECT語句
- 6. C++鏈接列表包含()函數
- 7. 問題和如果語句包含一個字符串在C++
- 8. cakephp:找到含有'包含'的語句
- 9. 如果鏈接中包含的鏈接
- 10. gcc包含路徑和符號鏈接
- 11. C語句常量含義
- 12. Rails:鏈接每個...語句
- 13. 鏈接IF/OR語句
- 14. PHP include_once鏈接導致在每個包含語句後創建不同的cookie
- 15. 命名空間和包含文件的C++鏈接錯誤
- 16. 如何在包含C/C++宏的行尾添加語句?
- 17. 如何在C/C++程序中包含SQL語句?
- 18. 哪些目錄在C/C++中包含語句搜索?
- 19. 鏈接對象的文件和鏈接包含這些文件
- 20. 包含appstore鏈接的TextMessage
- 21. 鏈接 - 包含哪個庫?
- 22. 嘗試在插入語句中同時包含select語句和用戶輸入
- 23. IF語句觸發時不包含真正的語句
- 24. 如何在HTML語句中包含If語句
- 25. WHERE語句不包含空值需要包含空值和失敗的匹配
- 26. 在SQL中執行包含select語句
- 27. SQL查詢中包含if/else語句
- 28. jQuery:包含Selector if else語句
- 29. 問題有關PHP包含語句
- 30. 如何包含CASE IF THEN語句SQL
「是」,但是對於答案來說這有點簡短:)(儘管在通常支持之前實現整個程序優化有一些竅門) –
瞭解你在做什麼,爲什麼和如何做。然後就解決問題的最佳方式提出自己的結論。 –