Что должно входить в объявления классов в заголовочных файлах? - PullRequest
0 голосов
/ 17 сентября 2010

Что должно входить в объявление класса в C ++?

Например, у меня есть следующее в заголовочном файле:

class BoardState {
 public:
  BoardState();

  bool HasWon() const;
  bool HasMoves() const;
  bool MakeMove(const int column);
  bool UndoMove(const int column);

  const Chip (&grid() const)[kGridHeight][kGridWidth] { return grid_; }
  const Chip lastplayer() const { return lastplayer_; }

 private:
  Chip grid_[kGridHeight][kGridWidth];
  Chip turn_;
  Chip lastplayer_;
  int lastmove_;
  DISALLOW_COPY_AND_ASSIGN(BoardState);
};

Файл cpp для этого класса определяет много дополнительных маленькихслужебные функции, типы и перечисления.Должны ли все они также быть определены в закрытом разделе объявления класса?

1 Ответ

0 голосов
/ 17 сентября 2010

Обычно лучше оставить вспомогательные функции вне класса.Таким образом, вы можете перегрузить функции для похожих классов и похожих функций.

Небольшие утилиты, которые являются частью реализации и не будут / не должны ничего делать для любого другого компонента, хотя должны быть private участники.

...