我正在使用具有多個枚舉的類的庫。這裏有一個例子使用類的枚舉(C++)
class TGNumberFormat
{
public:
// ...
enum EAttribute { kNEAAnyNumber
kNEANonNegative
kNEAPositive
};
enum ELimit { kNELNoLimits
kNELLimitMin
kNELLimitMax
kNELLimitMinMax
};
enum EStepSize { kNSSSmall
kNSSMedium
kNSSLarge
kNSSHuge
};
// etc...
};
在我得把它們看成TGNumberFormat::kNEAAnyNumber
例如代碼。我正在編寫一個經常使用這些值的GUI,並且代碼越來越難看。有什麼方法可以導入這些枚舉,只需鍵入kNEAAnyNumber
?我真的不希望這些名稱中的任何一個重疊。我試過使用using
關鍵字的各種方法,而且沒有一個會編譯。
我會用一個typedef本地的功能(如:'的typedef TGNumberFormat NF;',允許,比如:'NF :: kNELLimitMin') 。儘管如此,我認爲最好輸出名稱。 –
'struct X:TGNumberFormat {};'。然後你可以使用它們作爲'X :: kNEAAnyNumber'。我不建議你這麼做,因爲'TGNumberFormat'(表面上)比''''提出的更短的名稱具有更多的意義。 – Praetorian