tôi nhận thấy rằng nếu tôi làm điều gì đó như thế này trong C++ sử dụng Microsoft Visual Studio Express 2013:đẹp cách để tuyên bố sự đếm trong C++ mà không sưng không gian tên
namespace LogLevelEnum {
enum Type {
ALL,
FINEST,
FINE,
INFO,
WARNING,
SEVERE,
OFF
};
}
typedef LogLevelEnum::Type LogLevel;
tôi có thể truy cập vào enum mục sử dụng những thứ như LogLevel::INFO
và LogLevel::WARNING
, nhưng không phải chỉ đơn giản là thực hiện INFO
hoặc WARNING
. Tôi thích nó theo cách đó bởi vì nó không đặt nhiều ký hiệu vào không gian tên bao trùm.
Tuy nhiên, tôi đã tự hỏi liệu đây có phải là hành vi tiêu chuẩn hay không. Tôi biết các lớp học và không gian tên có thể được lập chỉ mục bằng cách sử dụng toán tử ::
, nhưng nó làm cho một chút ít ý nghĩa cho rằng để còn làm việc trên enums, coi họ chỉ đơn giản là đổ tất cả mọi thứ trong không gian tên nó trong.
Chỉ cần sử dụng [enoped enum] (http://en.cppreference.com/w/cpp/language/enum). – chris
C++ 11 lớp học enum? –
@chris: Ah, tôi không biết về những điều này. Tôi đoán tôi sẽ sử dụng chúng. Tôi vẫn tự hỏi làm thế nào chính xác hành vi của những gì tôi đã sử dụng được xác định, mặc dù. – RPFeltz