我注意到我能夠在g ++的父類之前編譯一個子類。是否需要按照特定的順序進行編譯,並考慮到依賴關係?g ++編譯順序很重要嗎?
8
A
回答
11
鏈接順序可以事情;編輯順序不。
3
總之:不!
每個C++編譯單元(C++源文件)都是獨立編譯的。類繼承等是在運行時設置的。這就是爲什麼您可以在單獨維護的庫中擁有基類,只要API和ABI保持兼容,就可以在不強制後代類進行重新編譯的情況下對基類進行更新。
0
爲了擴大ildjarn的答案,編譯子類的實現只需要父類的API /合同,而不是其實現。這將生活在一個像Parent.h
這樣的文件中,該文件將包含在包含孩子實施的文件中。
0
一般來說,沒有。編譯器將創建代表任何它無法識別但可以安全忽略的符號,鏈接將把這些符號轉換爲正確的代碼。在你的情況下,頭文件告訴編譯器編譯你的子類需要知道的一切,所以具體可以等待。
0
...我能一個父類之前編譯一個子類...
「編譯」是不是一個嚴格的定義來看,所以它是不完全清楚你的意思在這裏。但總的來說,不,你不能在父類之前編譯子類。在C++中,父類型必須爲完整,然後才能將其用作任何其他子類類型的基類。你要麼誤解了某些東西,要麼賦予「編譯」這個術語一些非正統的含義。
+2
我在做OP時主要問你是否可以在做'g ++ -c Child.cpp'之前做'g ++ -c Parent.cpp'之類的事情, – QuantumMechanic 2011-04-11 00:15:28
相關問題
- 1. 鏈接切換順序很重要嗎?
- 2. SQLDataReader字段順序很重要嗎?
- 3. Catch塊的順序很重要嗎?
- 4. 當命令行順序很重要嗎?
- 5. makefile中的規則順序很重要?
- 6. 加入條件的順序很重要?
- 7. VirtualAlloc的順序似乎很重要(C++)
- 8. 爲什麼管道順序很重要?
- 9. 燒瓶路線順序很重要?
- 10. mongoldb插入屬性順序很重要嗎?
- 11. Clearcase添加新目錄文件的順序很重要嗎?
- 12. 唯一索引列順序 - 它很重要嗎?
- 13. 在顯式的LINQ-to-SQL(C#)中,順序很重要嗎?
- 14. SQL中的項目順序:WHERE IN()很重要嗎?
- 15. 異常處理的順序很重要嗎?
- 16. 規則的順序在TreeTop中很重要嗎?
- 17. SQL選擇中的列的順序很重要嗎?
- 18. jQuery選擇器:選擇器的順序很重要嗎?
- 19. CSharpCodeProvider編譯順序
- 20. G ++編譯Cygwin
- 21. Linux g ++編譯
- 22. 在XML中,屬性順序重要嗎?
- 23. 編譯順序和編譯的依賴
- 24. 爲什麼傳遞參數的順序爲g ++重要
- 25. Sed命令 - 選項標記的順序很重要? (-ir vs -ri)
- 26. MIPS - 它很重要嗎?
- 27. 編譯錯誤G ++
- 28. MS SQL索引列排序順序很重要?
- 29. 運行時編譯順序
- 30. C++ Makefile編譯順序
簡短回答:否 – abeln 2011-04-10 23:38:20