У меня есть следующий классСтатический член Qt объектов в C++
class QBoardImages
{
public:
QImage empty_white;
QImage empty_black;
QImage possible_move;
QImage lighter;
QImage choosed;
QImage multiple_move;
QImage blue_pawn;
QImage blue_queen;
QImage blue_skydiver;
QImage red_pawn;
QImage red_queen;
QImage red_skydiver;
QBoardImages();
};
с конструктором, где у меня есть:
QBoardImages::QBoardImages()
{
QDir::setCurrent(QApplication::applicationDirPath());
empty_white.load("images/board/white.png");
empty_black.load("images/board/black.png");
lighter.load("images/board/lighter.png");
choosed.load("images/board/choosed.png");
blue_pawn.load("images/board/blue_pawn.png");
blue_skydiver.load("images/board/blue_skydiver.png");
blue_queen.load("images/board/blue_queen");
red_pawn.load("images/board/red_pawn.png");
red_skydiver.load("images/board/red_skydiver.png");
red_queen.load("images/board/red_queen.png");
possible_move.load("images/board/possible_move.png");
}
и, конечно, я хочу, чтобы загрузить эти изображения только один раз, но я не могу для этого. Каков наилучший способ загрузки этих изображений только один раз?
Спасибо всем
* "Я хочу, чтобы загрузить эти изображения только один раз, но я не могу это сделать .."* Зачем ? это потому, что вы делаете более одного экземпляра 'QBoardImages' в своем приложении? Если так .. не так ли? – WhozCraig
Да, это так. Но мне просто нужно использовать QBoardImages в нескольких очередях другого класса. Конечно, я мог бы сделать только один экземпляр QBoardImages, но для этого мне понадобилась бы статическая переменная ... Конечно, я мог бы использовать какое-то быстрое и уродливое решение, но я хочу найти что-то элегантное и универсальное. Я нахожу решение аналогичным статическим объектам в Java, например. – Firzen
1) Что именно неправильно с использованием одиночных игр? 2) Вы также можете сделать эти QImages * static * членами класса (т. Е. Глобальные переменные, в области класса), но это плохая идея по ряду причин. Это приведет к использованию 'Q_GLOBAL_STATIC' или указателей для QImages. – peppe