0
我已閱讀有用的文章"When to use forward declaration?"。這是使用前向聲明的情況嗎?
但是,我留下了一個問題。在這種情況下,我可以在標題中使用前向聲明,但不在cpp中是否有益處,它是什麼?
我已閱讀有用的文章"When to use forward declaration?"。這是使用前向聲明的情況嗎?
但是,我留下了一個問題。在這種情況下,我可以在標題中使用前向聲明,但不在cpp中是否有益處,它是什麼?
好處是減少了對頭文件的依賴。每當你做一個#include
時,預處理器基本上將該文件添加到你的頭文件中進行編譯,因爲頭文件需要它,所以這稱爲依賴。因此,在大型項目中,只要包含的文件發生更改,頭文件,其cpp文件以及包含它的所有內容都需要重新編譯。通常減少依賴可以幫助減少大型項目的編譯時間。
此外,有時需要打破循環依賴關係,這通常可以在大型項目中找到,例如,文件A包含文件B,其中又包含文件A.所以這是前向聲明的附加好處。
它也打破循環依賴。像'struct a'需要使用'struct b'指針和'struct b'需要'struct a'定義。 – KitsuneYMG
謝謝@KitsuneYMG,我更新了我的回覆。 – pippin1289
本文[「避免使用#的另一個原因#包含在標題中」](http://blog.knatten.org/2012/11/09/another-reason-to-avoid-includes-in-headers/)幫助我理解爲什麼向頭添加#include與將其添加到cpp文件不同。 – user870130