我很清楚什麼時候可以/不能使用前向聲明,但我仍然不確定一件事情。前向聲明/何時最好包含頭文件?
比方說,我知道我必須包括一個頭遲早要取消引用類A. 的對象我不是它是否更有效地做這樣的事情清楚..
class A;
class B
{
A* a;
void DoSomethingWithA();
};
然後在CPP有類似..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
或者可能我也僅僅包括A在B的頭文件頭擺在首位? 如果前者更高效,那麼我會很感激,如果有人清楚地解釋了爲什麼,因爲我懷疑它與編譯過程有關,我可以隨時瞭解更多信息。
+1谷歌C++風格指南 – LihO
歡呼回答,和谷歌的風格指南看起來這將是一個偉大的閱讀感謝! – Holly
我知道這個帖子已經過時了,但我想我應該指出,爲防萬一別人在尋找理由,Google的理由似乎已經變成了「避免在可能的情況下使用前向聲明,只需#include你需要的頭文件。 「 – soulsabr