2012-12-05 28 views
0

你能幫我解決以下問題嗎? 我有一個文件log.cpp,其中包含項目中的不同文件。我需要在其中一個文件中聲明define,它必須影響log.cpp,而不會在log.cpp或log.h中進行實際更改。 我該怎麼做? 帶預編譯頭的解決方案是不可接受的。爲特定文件定義

還有一個問題我如何定義一個靜態函數? 我的意思是如果我在我的代碼中調用CClass::Func,我該如何定義它以重定向到其他東西?

+0

你實際上是否包含一個.cpp?這不是好的做法... –

+0

我只包括標題,它只是機械錯誤:)所以你能幫我解決這個問題嗎? –

回答

1

如果你想影響頭,你可以把定義之前,包括:

#define SOMEDEFINE SOMEVALUE 
#include log.h 
// May want to remove or change our define here 
#undef SOMEDEFINE 

這是假設你的意思是,你包括log.h,因爲你不希望包括CPP來自其他文件。具有獨立的.h和.cpp文件的想法是.h是所有編譯單元看到的接口,而cpp是代碼本身,應該只編譯一次,並且不應該因編譯單元的不同而異指的是它。

0

對於我所知道的所有C++編譯器,您可以在命令行上輸入#define符號。通常這是通過使用-D option完成的。