Używam biblioteki, która ma klasy z wieloma wyliczeniami. Oto przykładUżywanie wyliczeń z klasy (C++)
class TGNumberFormat
{
public:
// ...
enum EAttribute { kNEAAnyNumber
kNEANonNegative
kNEAPositive
};
enum ELimit { kNELNoLimits
kNELLimitMin
kNELLimitMax
kNELLimitMinMax
};
enum EStepSize { kNSSSmall
kNSSMedium
kNSSLarge
kNSSHuge
};
// etc...
};
W kodzie muszę odnosić się do nich jak TGNumberFormat::kNEAAnyNumber
na przykład. Piszę GUI, który bardzo często wykorzystuje te wartości, a kod staje się brzydki. Czy istnieje sposób, w jaki mogę zaimportować te wyliczenia i po prostu wpisać kNEAAnyNumber
? Nie oczekuję, że którekolwiek z tych nazw się pokryją. Próbowałem różnych sposobów użycia słowa kluczowego using
i żadne nie będzie się kompilować.
użyłbym typedef lokalny do funkcji (np 'typedef TGNumberFormat NF;', pozwalając np 'NF :: kNELLimitMin') . Chociaż twierdzę, że lepiej jest wpisywać nazwiska. –
'struct X: TGNumberFormat {};'. Następnie możesz użyć ich jako 'X :: KNEAAnyNumber'. Nie polecam tego, ponieważ 'TGNumberFormat' (pozornie) ma większe znaczenie niż jakakolwiek krótsza nazwa, którą wymyślisz dla' X'. – Praetorian