你能帮我解决以下问题吗? 我有一个文件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?这不是好的做法... –
我只包括标题,它只是机械错误:)所以你能帮我解决这个问题吗? –