Я занимаюсь разработкой C++ меньше года, но за это время я слышал, как несколько человек говорят о том, насколько ужасен #define. Теперь я понимаю, что он интерпретируется препроцессором, а не компилятором, и поэтому не может быть отлажен, но так ли это плохо?
Вот пример (непроверенный код, но общее представление вы поняли):
#define VERSION "1.2"
#include <string>
class Foo {
public:
string getVersion() {return "The current version is "+VERSION;}
};
- Почему этот код плохой?
- Есть ли альтернатива использованию
#define?
define— это хитрые конструкции, которыми легко злоупотребить или неправильно использовать. но, как иgoto, они могут быть очень полезными. - person Anycorn   schedule 21.04.2012+было бы, но как есть? Неа. - person Matthieu M.   schedule 21.04.2012