Соответствующее использование глобальных переменных const в C++?

Я работаю над программой для моего класса CS. Это имитация деятельности компании-поставщика в аэропорту.

Это очень простая, небольшая программа, состоящая из нескольких заголовочных и исходных файлов и исходного файла main.cpp, который организует моделирование.

Существуют определенные заданные постоянные значения, такие как частота прибытия груза, грузоподъемность самолетов, время, затрачиваемое работником на обработку определенных предметов, и т.д. (все эти значения целочисленны). Мне необходимо получить доступ к этим переменным в нескольких функциях main.cpp

() функционируют как const ints, фактически делая их глобальными, например,

const int kTotalTime = 2000;
const int kPlaneCapacity = 25;
int main() {//... программный код}

Я осознаю, что глобальных переменных следует избегать в большинстве ситуаций, так как нет ограничений на то, где они могут вызываться и/или изменяться, что может привести к случайному разрыву частей программы, которые, в свою очередь, могут быть трудно отладить, а также вызвать проблемы совместимости для будущего кода и т.д. Однако, поскольку это значения только для чтения примитивного типа данных, которые используются во всей программе, это казалось разумным решением. Кроме того, он делает явное утверждение о назначении переменных любому, кто читает код, а также компилятору.

Вопросы: Ошибочна ли моя логика? Как же так? Когда можно использовать глобальные переменные (конст или нет)? Если это плохое решение, то как бы вы предложили объявить постоянные значения только для чтения, такие как эти?

Спасибо большое за ваше время!

-121--1765033- Время выполнения ЦП на Java Я хочу рассчитать, сколько времени занимает выполнение функции ЦП на Java. В настоящее время я делаю, как показано ниже. long startTime = System.currentTimeMillis (); myfunction (); long endTime = Система....

Я хочу вычислить, сколько ЦП занимает моя функция для выполнения на Java. В настоящее время я делаю, как показано ниже.

   long startTime = System.currentTimeMillis();
    myfunction();
    long endTime = System.currentTimeMillis();
    long searchTime = endTime - startTime;

Но я обнаружил, что для одного и того же ввода/вывода я получаю разное время в зависимости от нагрузки системы.

Итак, как получить точное время ЦП, которое выполняла моя функция.

10
задан Joachim Sauer 19 September 2011 в 06:37
поделиться