假設我有一個C類,它具有一個屬性狀態,可以將值降低,變平或變大。而不是將狀態變量表示爲整數,我們可以使用枚舉來代替(其中基本上是整數)。例如,類內枚舉
class C{
public:
enum state {down = -1, flat = 0, up = 1};
C(state s = flat) : st(s) {}
private:
state st;
};
之所以把枚舉類的公共部分內是如此,其他對象可以使用此枚舉名單。他們將不得不打電話
C::up
檢索值。我的問題是:將枚舉聲明放在類定義內部還是外部(例如直接在上面)是「最佳實踐」? 如果枚舉表示只對該類具有含義的值/狀態,那麼將其放在類定義中會感覺很直觀。
謝謝。
我同意,至少將它放置在一個名稱空間內(實質上是我們通過將其放置在類定義中的公共部分內而完成的)的感覺最好。就像你說的,避免自由浮動枚舉。 – jensa 2014-09-11 11:23:52