Gel*_*Fox 6 c++ macros visual-studio-2010 c-preprocessor
我正在使用C++代码在Visual Studio 2010中工作.我想要做的是在运行时更改预处理器指令的值,不确定它是否可行,但我已经尝试过了..
somefile.h
static int mValue = 0;
#define POO = mValue;
...
#if POO 0
//define class methods
#else
//define class methods differently
}
Run Code Online (Sandbox Code Playgroud)
main.cpp中
main()
{
//Code calls constructor and methods allowed when POO is 0
//Code increments mValue
//Code calls constructor and methods allowed when POO is 1
}
Run Code Online (Sandbox Code Playgroud)
如何更改POO以便类对象使用其他方法的不同实现?或者,如果不可能,那么另一种方法是什么?
您似乎对"预处理器"指令的性质感到困惑.这些仅在编译器处理之前存在.编译器在编译步骤中消除(替换/处理)宏定义.它们在运行时不存在以进行更改.它本身就是一种迷你语言,它只能编译成c/c ++代码,然后由编译器处理.
听起来你希望你的类基于某种运行时输入而成为两个不同的东西.这可能表明存在设计问题.您可以考虑定义两个不同的类(可能使用一个普通的普通基类).
归档时间: |
|
查看次数: |
2452 次 |
最近记录: |