你能幫我解決以下問題嗎? 我有一個文件log.cpp,其中包含項目中的不同文件。我需要在其中一個文件中聲明define,它必須影響log.cpp,而不會在log.cpp或log.h中進行實際更改。 我該怎麼做? 帶預編譯頭的解決方案是不可接受的。爲特定文件定義
還有一個問題我如何定義一個靜態函數? 我的意思是如果我在我的代碼中調用CClass::Func
,我該如何定義它以重定向到其他東西?
你能幫我解決以下問題嗎? 我有一個文件log.cpp,其中包含項目中的不同文件。我需要在其中一個文件中聲明define,它必須影響log.cpp,而不會在log.cpp或log.h中進行實際更改。 我該怎麼做? 帶預編譯頭的解決方案是不可接受的。爲特定文件定義
還有一個問題我如何定義一個靜態函數? 我的意思是如果我在我的代碼中調用CClass::Func
,我該如何定義它以重定向到其他東西?
如果你想影響頭,你可以把定義之前,包括:
#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE
這是假設你的意思是,你包括log.h,因爲你不希望包括CPP來自其他文件。具有獨立的.h和.cpp文件的想法是.h是所有編譯單元看到的接口,而cpp是代碼本身,應該只編譯一次,並且不應該因編譯單元的不同而異指的是它。
對於我所知道的所有C++編譯器,您可以在命令行上輸入#define
符號。通常這是通過使用-D
option完成的。
你實際上是否包含一個.cpp?這不是好的做法... –
我只包括標題,它只是機械錯誤:)所以你能幫我解決這個問題嗎? –