Bir dizi enum içeren sınıfları olan bir kitaplık kullanıyorum. İşte örneğin TGNumberFormat::kNEAAnyNumber
olarak adlandırıyoruz zorunda kodunda bir örnekSınıftan (C++) yararlanılıyor
class TGNumberFormat
{
public:
// ...
enum EAttribute { kNEAAnyNumber
kNEANonNegative
kNEAPositive
};
enum ELimit { kNELNoLimits
kNELLimitMin
kNELLimitMax
kNELLimitMinMax
};
enum EStepSize { kNSSSmall
kNSSMedium
kNSSLarge
kNSSHuge
};
// etc...
};
bu. Bu değerleri çok sık kullanan bir GUI yazıyorum ve kod çirkinleşiyor. Bu enumları içe aktarmanın ve sadece kNEAAnyNumber
yazmanın bir yolu var mı? Bu isimlerin herhangi birinin üst üste gelmesini beklemiyorum. using
anahtar sözcüğünü kullanmanın çeşitli yollarını denedim ve hiçbiri derlenmeyecek.
Ben işleve bir typedef yerel kullanmak istiyorsunuz ... kapak için çalıştırır (örneğin 'typedef TGNumberFormat NF;', izin, mesela, 'NF :: kNELLimitMin') . Yine de, isimleri yazmak daha iyi olduğunu iddia ediyorum. –
yapı X: TGNumberFormat {}; '. Sonra onları 'X :: kNEAAnyNumber' olarak kullanabilirsiniz. Bunu yapmamanızı tavsiye etmiyorum, çünkü “TGNumberFormat” (görünüşte), “X” için bulduğunuz daha kısa bir addan daha fazla anlam taşıyor. – Praetorian