Где и как создавать переменные, которые часто используются.
Здравствуйте, Евгений.
В моей программе paintEvent – выполняет всю работу, что требуется от программы (принудительно вызывается методом update() – раз в 4 мс).
Вопрос. Не являются ли затратным каждый раз создавать и удалять временные переменные?
Лучше ведь один раз создать и использовать много раз?
Исходя из этого, самый лучший вариант сделать переменные painter и VERTICAL_LINES статическими?
Можно сделать и членами класса, но эти переменные используются только в одной функции, и большей области видимости им не нужно.
Скажите , что вы думаете об этом. И насколько сильно замедляется работа программы, когда переменные создаются и удаляются каждый раз?
void Widget::paintEvent(QPaintEvent *) { QPainter painter(this); // или static QPainter painter(this); painter.setPen(QPen(QColor(Qt::white))); const int VERTICAL_LINES = 5; // или static int VERTICAL_LINES = 5; for(int i = 0; i < VERTICAL_LINES; i++) { //Представим, что тут рисуем линии. } }

Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Unknown akadamn
- 24 января 2025 г. 17:14
Qt - Тест 001. Сигналы и слоты
- Результат:84баллов,
- Очки рейтинга4
- Unknown akadamn
- 24 января 2025 г. 16:22
Qt - Тест 001. Сигналы и слоты
- Результат:42баллов,
- Очки рейтинга-8


Не стоит плодить глобальных переменных без реальной нужды в этом.
painter точно не стоит выносить за пределы локальной области видимости без реальной нужды в этом.
Что касается VERTICAL_LINES, то только в том случае, если она будет отвечать за настройку количества этих линий и если это действительно нужно будет.
Накладные расходы при выделении памяти в данном случае вряд ли будут настолько большими.