2014-03-07 38 views

回答

2

好處是減少了對頭文件的依賴。每當你做一個#include時,預處理器基本上將該文件添加到你的頭文件中進行編譯,因爲頭文件需要它,所以這稱爲依賴。因此,在大型項目中,只要包含的文件發生更改,頭文件,其cpp文件以及包含它的所有內容都需要重新編譯。通常減少依賴可以幫助減少大型項目的編譯時間。

此外,有時需要打破循環依賴關係,這通常可以在大型項目中找到,例如,文件A包含文件B,其中又包含文件A.所以這是前向聲明的附加好處。

+2

它也打破循環依賴。像'struct a'需要使用'struct b'指針和'struct b'需要'struct a'定義。 – KitsuneYMG

+0

謝謝@KitsuneYMG,我更新了我的回覆。 – pippin1289

+0

本文[「避免使用#的另一個原因#包含在標題中」](http://blog.knatten.org/2012/11/09/another-reason-to-avoid-includes-in-headers/)幫助我理解爲什麼向頭添加#include與將其添加到cpp文件不同。 – user870130