Недавно я написал класс, который отображает кривые B-сплайна. Эти кривые определяются рядом контрольных точек. Первоначально я намеревался использовать восемь контрольных точек, так что я добавил константу в классе, например, так:Лучше хранить константы класса в элементах данных или в методах?
class Curve
{
public:
static const int CONTROL_POINT_COUNT = 8;
};
Теперь я хочу, чтобы расширить этот класс, чтобы произвольное количество контрольных точек. Поэтому я хочу, чтобы изменить это:
class Curve
{
public:
int getControlPointCount() {return _controlPointCount;}
};
Вопрос заключается в том, является ли это не лучше хранить константы в методах, чтобы начать с того, чтобы облегчить приспособляемость. Другими словами, не лучше, начал так:
class Curve
{
public:
int getControlPointCount() {return 8;}
};
Преимущество этого в том, что я мог бы просто изменили один символ в методе в вопросе, вместо перемещения вокруг констант и т.д.
Это хорошая практика или плохой?
Я честно не понимаю вопроса. что отличается от изменения 8 в методе изменения 8 в инициализаторе статичности? Оба требуют такой же работы. метод имеет недостаток, что он не является чистой постоянной времени компиляции и, следовательно, не может быть использован для некоторых вещей –