现在不用C++编写代码,但是当我在C#中遇到问题时出现了一个问题。希望这里的专家能够轻松地给出一个答案。C++,#ifdef问题
Class A{
#ifdef AFlag
public void methodA(){...}
#endif
}
Class B{
...
A a;
a.methodA();
...
}
Class C {
...
A a;
a.methodA();
...
}
如果AFlag没有在任何地方定义,会发生什么?编译错误或没有错误,但方法和那些调用该方法的语句不会被编译? 谢谢
这是使用'#if'描述特定特定代码的复杂性的一个例子。类“B”和“C”需要使用相同的“#if”。因此它使用'A :: methodA()'传播到任何代码片段。这就是噩梦的开始和企业利润的浪费。另一个喜欢功能替换(通过链接器)(或包括所有代码和使用配置数据文件)的原因。 – 2010-02-10 19:51:33