Tôi có một enum như thế này: (Trên thực tế, nó là một lớp enum)typedef và enum hoặc enum lớp
enum class truth_enum {
my_true = 1,
my_false = 0
};
Tôi muốn để có thể tiếp xúc với my_true đến không gian tên toàn cầu, vì vậy mà tôi có thể làm này:
char a_flag = my_true;
Hoặc ít nhất:
char a_flag = (char)my_true;
Thay vì điều này:
char a_flag = truth_enum::my_true;
Điều này có khả thi không?
Tôi đã thử một cái gì đó như thế này:
typedef truth_enum::my_true _true_;
tôi nhận được lỗi: my_true trong lớp enum truth_enum không tên một loại
đoán của tôi là my_true là một giá trị không phải là một kiểu. Có cách nào khác mà tôi có thể thực hiện để kích hoạt chức năng này trong các chương trình của tôi không?
Không lý tưởng, nhưng tôi có thể làm một cái gì đó như:
enum class : const char { ... };
const char const_flag_false = truth_enum::my_false;
Hmm ...
nếu bạn sử dụng lớp enum, bạn không thể tránh viết tiền tố. verbosity không phải là một vấn đề, trừ khi nó cản trở khả năng đọc. – yngccc
Một điều tra viên của một lớp 'enum' không ngầm chuyển thành một số nguyên, vì vậy' char a_flag = my_true; 'là sai. –
Tôi đã sử dụng một chuyển đổi ở trên – user3728501