現在不用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