У меня есть функция в чистом виртуальном классе, который наследуется несколькими классами. Эта функция выглядит примерно так:Проверка NULL для целых чисел в qt
virtual quint32 myClass::getIntValue() = 0
В некоторых классах, inherrit этой функции значение по умолчанию должно быть возвращено, так как они не могут реализовать эту функцию (пока). Однако любой quint32, который я выбираю, также может быть действительным возвращаемым значением. Так, например, если я выбираю значение «0» для значения по умолчанию, я могу проверить возвращаемое значение как «0» и действовать соответствующим образом (например, игнорируя это значение). Однако будут случаи, когда «0» будет действительным возвращаемым значением, которое имеет смысл.
Есть ли какой-либо путь вокруг этой проблемы?
исключение. – sbabbi
@sbabbi Итак, каждый вызов 'getIntValue()' должен быть завернут в блок 'try-catch'? Знаете ли вы, как дорого раскручивается стопка !? Мне нравятся исключения, но они должны использоваться в непредвиденных обстоятельствах - просто вызов метода не является одним из них. – cmannett85
Если вы можете использовать 'qint32' вместо' quint32', вы можете иметь -1 в качестве недопустимого значения по умолчанию и все еще что-то вроде 2 миллиардов возможных допустимых значений. Или, если вы хотите использовать 'quint32', вы можете считать значение -1 (' 0xFFFFFFFF') значением по умолчанию. Или вам нужны все возможные «quint32» как действительные? – Miki