2012-12-05 31 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完成的。