Нубский вопрос, но хотелось бы понять следующее:
Представьте, что у меня есть многофайловый проект. Я указываю класс в заголовочном файле, который будет использоваться всеми файлами проекта, и пишу следующее: static int test = 0;
, а в следующей строке: static const int MAX = 4;
Первым будет ошибка при попытке компиляции из-за одного правила определения. Но второй скомпилируется без ошибок. Почему?
Насколько я понимаю, оба имеют одинаковые свойства: продолжительность хранения всего выполнения, область действия класса и отсутствие связи.
Любая помощь?
РЕДАКТИРОВАТЬ: проверка объявления внешней константы в заголовке: extern const int MAX = 4;
для принудительной внешней связи привела к ожидаемой ошибке. Поэтому я не понимаю, почему с переменной это дает мне ошибку, а с константой - нет.
static const int MAX = 4;
? - person Tom Kerr   schedule 17.08.2012