我想轉發在另一個文件中聲明一個類的靜態成員函數。我想要做的是這樣的:正向聲明靜態函數C++
BigMassiveHeader.h:
class foo
{
static void init_foos();
}
Main.cpp的:
class foo;
void foo::init_foos();
int main(char** argv, int argc)
{
foo::init_foos()
}
這失敗了與「錯誤C2027:使用未定義的類型 '富' 的「
有沒有辦法讓init_foos成爲一個免費函數或者包含BigMassiveHeader.h來完成我想要做的事情? (BigMassiveHeader.h顯着影響編譯時間,並且無處不在。)
是否包含代碼.cpp或BigHeader.h中不應該有效果。畢竟,你使用#include guard或者#pragma一次,所以BigHeader.h只能被編譯一次,對吧? – Kyte 2010-04-16 19:36:11
@Kyte包含保護將每個翻譯單元的BigHeader.h限制爲一次。如果它被包含在許多源文件中,則需要多次編譯。 – KeithB 2010-04-16 19:39:48
那麼有可能將'class foo'的定義分解爲另一個頭文件? – 2010-04-16 20:08:29