Я создал класс, который моделирует временные интервалы в ежедневном графике с переменной градацией, где, например, первый временной интервал составляет 30 минут, но второй временной интервал может быть 40 минут и первый доступный слот начинается с (значение, сравнимое с) 1.C++: определение максимального/минимального пределов для класса
Теперь я хочу определить как-то максимальные и минимально допустимые значения, которые этот класс принимает, и у меня есть два практических вопроса, чтобы сделайте так:
1.- Имеет ли смысл определять абсолютный минимум и максимум таким образом для пользовательского класса? Или, лучше, достаточно ли, чтобы значение всегда сравнивалось как меньшее, чем любое другое возможное значение типа, учитывая определенные реляционные операторы класса, чтобы определить min? (и аналогично для максимума)
2.- Предполагая, что предыдущий вопрос имеет ответ, смоделированный после «да» (или «да, но ...»), , как определить такой максимум/мин? Я знаю, что есть std::numeric_limits<>
, но из того, что я прочитал, он предназначен для «числовых типов». Я интерпретирую это как значение «представлен как число» или могу ли я сделать более широкое предположение, например «представленное цифрами» или «соответствие целым числам»? В конце концов, имеет смысл определить минимум и максимум для класса даты и, возможно, для класса словаря, но numeric_limits
может не предназначаться для этих целей (у меня мало опыта с ним). Кроме того, у numeric_limits
есть много дополнительных членов и информации, которые я не знаю, что с ними делать. Если I не использовать numeric_limits
, то какой другой известный/широко используемый механизм предлагает C++, чтобы указать доступный диапазон значений для класса?
Спасибо за ваш ответ, Ной. И да, я думаю, что иногда я слишком многословный, но, похоже, у вас не было проблем с этим, и я отправился туда, куда хотел. Да, я хочу «быть напористым о домене моего класса». У меня нет особых проблем с использованием утверждений или try/catch, чтобы убедиться, что я не испортил код, я просто хочу две вещи: иметь возможность предоставлять такую же (или подобную) информацию моим клиентам, чтобы они также могут принимать соответствующие решения, и эта информация может быть предоставлена естественным образом. Спасибо за подсказку об обеспечении общего интерфейса проверки. – luismachuca