Иногда в классе, который реализует своего рода алгоритм, я бы хотел, чтобы пользователь мог включить или отключить определенную функцию, скажем, масштабирование некоторых входных значений.Иногда я вижу следующий код для этого (со значениями bool / float, установленными в конструкторе):
class A
{
private:
bool enableScaling;
float scaleFactor;
public:
float foo(float x) const {
...
if(enableScaling) {
x *= scaleFactor;
}
...
}
};
Две переменные для этой цели мне не понятны, и я ищу советы для таких ситуаций.
В случае масштаба, я могу вообще опустить булеву переменную и установить значение по умолчанию scaleFactor = 1.0f
(нейтральное), и я думаю, это будет хорошо для меня.Иногда «значение параметра функции» может быть только положительным, поэтому я мог бы установить его значение по умолчанию -1, чтобы показать, что это значение отключено, но иногда это не так (все значения допустимы).
Как вы подходите к таким ситуациям в целом?