你可以帮我解决以下问题吗? 我有一个文件log.cpp,其中包含项目中的不同文件。我需要在其中一个文件中声明define,这些文件必须影响log.cpp,而不需要在log.cpp或log.h中进行实际更改。 我怎样才能做到这一点? 使用预编译头的解决方案是不可接受的。
还有一个问题我如何定义静态函数?
我的意思是如果我在我的代码中调用CClass::Func
,我该如何定义它以重定向到其他内容?
答案 0 :(得分:1)
如果您想影响标题,可以在include:
之前添加该定义#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE
这假设您的意思是包含log.h,因为您不希望包含其他文件中的cpp。单独的.h和.cpp文件的想法是.h是所有编译单元看到的接口,而cpp是代码本身,它应该只编译一次,并且不应该根据你是哪个编译单元而不同提到它。
答案 1 :(得分:0)
对于我所知道的所有C ++编译器,您可以在命令行上使用#define
个符号。通常,这是使用-D
option完成的。