Привет. Как сделать статический QHash<QString,QString>(например) для множества объектов одного класса.
Допустим сделал так:
class MyClass {
static QHash<QString,QString> staticHash;
}
Как его инициализировать и где?
Сейчас подход такой (понимаю что говнокод)
void CDKSwitchState::parseState(const QJsonValue & jsonValue)
{
CRailObjectState::parseState(jsonValue);
if(!jsonValue.isObject())
return;
QJsonObject jsonObject = jsonValue.toObject();
QString valueS;
if(myjson_read_string_value(jsonObject,propname_s_fact_no_pos,valueS))
{
static QHash<QString,LongAbsentPositionState> lapsHash;
if(lapsHash.isEmpty())
{
lapsHash[valuename_s_fact_no_pos_unchecked_pos]=lapsUnchecked;
lapsHash[valuename_s_fact_no_pos_checked_pos]=lapsChecked;
}
updateStateProperty(prop_long_absent_position_state,lapsHash.value(valueS,lapsOk));
}
}
Т.е. использую статический хеш в функции, но понимаю что это далеко не лучшее решение. Экземпляров много, но все должны обращаться к хешу на чтение.