I Я делаю очень простой класс для представления позиций в трехмерном пространстве. [12 150] В настоящее время я просто разрешаю пользователю напрямую изменять отдельные значения X
, Y
и Z
. Другими словами, это общедоступные переменные-члены.
template <typename NumericType = double>
struct Position
{
NumericType X, Y, Z;
// Constructors, operators and stuff...
};
Это объясняется тем, что, поскольку NumericType
является параметром шаблона, я не могу полагаться на наличие достойного способа проверки значений на работоспособность. . (Откуда мне знать, что пользователь не захочет, чтобы позиция была представлена отрицательными значениями?) Следовательно, нет смысла добавлять геттеры или сеттеры, чтобы усложнить интерфейс, и прямой доступ должен быть предпочтительным из-за его краткости.
Pos.X = Pos.Y + Pos.Z; // Versus...
Pos.SetX(Pos.GetY() + Pos.GetZ());
это нормальное исключение из хорошей практики? Будет ли (гипотетический) будущий сопровождающий моего кода выследить меня и ударить меня по лицу?