Tôi có một hệ thống phân cấp lớp, và mỗi lớp trong đó có một lớp ngoại lệ, có nguồn gốc trong một hệ thống phân cấp song song, do đó ...Mở rộng enum trong các lớp thừa
class Base
{
};
class Derived : public Base
{
};
class BaseException : public std::exception
{
enum {THIS_REASON, THAT_REASON};
};
class DerivedException : public BaseException
{
// er...what?
};
Tôi muốn, trong lớp DerivedException, để mở rộng kiểu liệt kê để bao gồm một giá trị mới THE_OTHER_REASON, sao cho lớp DerivedException có thể chứa bất kỳ giá trị nào trong ba giá trị này.
Trước hết, tôi có muốn làm điều này không? Liệu nó có vẻ là một thực hành hợp lý? Nếu vậy, làm thế nào để tôi đi về nó? Nếu không, bạn sẽ giới thiệu những lựa chọn thay thế nào?
EDIT: Một bản sao có thể đã được đề xuất here, nhưng các giải pháp được đề xuất khác nhau vì câu hỏi đó là dành cho C# và điều này cho C++.
thể trùng lặp của [Enum "thừa kế"] (http: // stackoverflow.com/questions/757684/enum-inheritance) –