Где и как создавать переменные, которые часто используются.
Здравствуйте, Евгений.
В моей программе 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++) { //Представим, что тут рисуем линии. } }

We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Unknown akadamn
- Jan. 24, 2025, 5:14 p.m.
Qt - Test 001. Signals and slots
- Result:84points,
- Rating points4
- Unknown akadamn
- Jan. 24, 2025, 4:22 p.m.
Qt - Test 001. Signals and slots
- Result:42points,
- Rating points-8


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