我有各种类Case0
, Case1
,Case2
等,我想使用一些预处理器在它们之间切换#define
。它们都共享相同的接口(相同的公共方法),我可以使用 OOP,但我更喜欢使用预处理器指令。
现在我有类似的东西:
#define CASECLASS Case0
//#define CASECLASS Case1
//#define CASECLASS Case2
#define CASE 0
class Main {
public:
CASECLASS *mycase;
Main() {
mycase = new CASECLASS();
if(CASE==0) {
mycase->foo();
// something else
}
if(CASE==1) {
mycase->foo();
// something else
}
}
}
这样,每次我必须切换时,我都必须更改定义CASECLASS
和CASE
. 我想知道是否有更清洁的方法。
编辑:
我不想使用 OOP,因为不同的类使用不同的库。这会影响编译时间,并且它们是平台相关的。我认为预处理器指令是一个更好的选择。