в c ++ h файле:
bool getIntValue(QString name,int& dest,int default_value,bool set_default=true);
в c ++ cpp файле:
bool CoinConfig::getIntValue(QString name, int& dest, int default_value, bool set_default)
{
qDebug() << "1 getIntValue set_default=" << set_default;
if (_Platform_Config->contains(name)) {
dest = _Platform_Config->value(name).toInt();
qDebug() << "2 getIntValue dest" << dest;
return true;
}
else if (set_default) {
qDebug() << "3 set_default=" << set_default;
qDebug() << "4 getIntValue dest default" << dest;
dest = default_value;
qDebug() << "5 getIntValue dest default" << dest;
return false;
}
}
///////////////// /////// выполнить следующий код:
int b;
getIntValue("timer", b, -1, false); //_Platform_Config->contains(name) return false
получил вывод:
1 getIntValue set_default = false // at first set_default is false
3 set_default= true // change to true ???
4 getIntValue dest default 1000
5 getIntValue dest default -1
b 2 -1
Параметр set_default изменился с false на true !!! система linux, в режиме отладки это правильно, но в режиме выпуска это ошибка.
почему?