0
什么应该进入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文件定义了许多额外的小的实用功能,类型和枚举。是否所有这些都应该在类声明的私有部分中定义?
随着返回内部数据成员'grid_'你已经突破了所有的抽象。请参阅[本文(PDF链接)](http://www.idinews.com/quasiClass.pdf),其中阐述了这一点。 – sbi 2010-09-17 07:56:36
'class Foo {/ * ... * /};'不是类声明*,而是类定义*。类声明看起来像'class Foo;'(注意缺少的类体),有时也称为* forward声明*。无论你是定义还是仅仅声明类定义中的成员函数都是一个单独的问题。 – fredoverflow 2010-09-17 08:28:29