Вы можете убедиться, что вы правильно сделали свой расчет, включив в него единицы измерения.Таким образом, период имеет измерение времени, Герц имеет измерение 1,0 / время, а выборки безразмерны.Программно, вы можете сделать это с boost.units .Он проверит ваши единицы во время компиляции и выдаст вам ошибку, если вы допустите ошибку.
Это также не даст вашему пользователю ввести неправильные единицы в ваш код.Например, введя 20 вместо 20000 для частоты (думая, что вы измеряли в кГц)
Ваш интерфейс будет выглядеть примерно так:
using namespace boost::units;
set_period(quantity<si::time> period);
Пользователь должен будет ввести времяв секундах
set_period(5*si::seconds)