Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как создать глобальную константу для всего проекта? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача двухмерного массива в функцию http://www.cyberforum.ru/cpp-beginners/thread1306450.html
Товарищи, помогите, пожалуйста, с таким вопросом: Я хочу сделать функции ввода и вывода элементов двухмерного массива, да так, чтобы эти функции были универсальными и принимали аргументы в...
C++ Вывести таблицу значений функции Мастера, помогите написать программу 4 варианта, а то совсем ничего не получается http://www.cyberforum.ru/cpp-beginners/thread1306449.html
Определить, является ли квадратная матрица симметричной относительно побочной диагонали C++
Собственно столкнулся с проблемой: мне нужно сравнить элементы массива над побочной диагональю и под ней. однако когда при сравнении пишу a так считаются индексы элементов под диагональю при...
Динамическое программирование. Деревья C++
Добрый день. Хотелось бы увидеть реализацию следующей задачи именно через ДП(Кнут и потоки реализовал). Найти паросочетание максимального веса в дереве.
C++ Как изменять параметры объектов формы при событии http://www.cyberforum.ru/cpp-beginners/thread1306432.html
Доброго времени суток. Столкнулся с проблемой windows forms, допустим у нас есть форма MyForm, какой код надо вписать в MyForm.h, чтобы при *любое событие* форма меняла допустим фон на...
C++ написать программу, выводящую все сочетания чисел массива Пример: Массив - 1 7 9 Вывод - 17 19 79 71 91 97 179 197 719 791 917 971 подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3969 / 2193 / 553
Регистрация: 18.10.2014
Сообщений: 3,802
21.11.2014, 01:58
Цитата Сообщение от true_bugmaker Посмотреть сообщение
ТС нигде не указывал таких тонкостей своего проекта.
Я не вижу, какое отношение это может иметь к каким-то "тонкостям проекта". Это фундамент языков С и С++, который всегда присутствует во всех "проектах" без исключения.

Спецификация 'const' объектов целочисленных типов языка С++ специально разработана так, чтобы 'const int N = 42;' при правильном использовании мог выступать в качестве константы времени компиляции, т.е. в качестве замены для '#define N 42' из языка С. '#define' считается слишком грубым инструментом, так как не поддерживает типизации и не подчиняется областям видимости.

В языке С++ (в отличии от С) разрешается использовать 'const' объекты целочисленных типов, например, для задания меток case, ширин битовых полей, размеров любых массивов, инициализаторов enum констант и т.п. Но чтобы 'const' объекты можно было использовать в такой роли глобально в проекте, их инициализаторы должны быть видны во всем проекте. Т.е. поступать придется именно так, как показано в моем примере и платить за это перекомпиляцией всего проекта при изменении значения константы.

А если вам не нужно, чтобы ваша глобальная константа была константой времени компиляции, а была просто "неизменяемой переменной" (как это было в С), то можно пойти по вашему пути через 'extern const' в заголовочном файле.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.