使用C++ 03,请考虑以下代码:

enum compare_status {
    no_match,
    match,
    partial_match,
    error
};

// Interface
class IOBuffInterface {
 public:
    virtual ~IOBuffInterface() {}
    virtual compare_status compare(uint8_t* start, unsigned n) = 0;
};

// Object
class IOBuff: public IOBuffInterface {
 public:
    virtual ~IOBuffInterface() {}
    virtual compare_status compare(uint8_t* start, unsigned n) = 0;
};

是否可以将compare_status枚举作为IOBuff范围的一部分,所以在外部看起来像IOBuff::compare_status,问题是IOBuff类之前的IOBuffInterface类需要它。有什么解决方案吗?

编辑:下午在注释中提供了答案,C++ 03中的您不能

最佳答案

使它成为IOBuffInterface的一部分,因为这就是它的真正含义。

任何从IOBuffInterface继承的类都需要compare_status。现在还不清楚为什么它的定义应该包含在IOBuffInterface的一个特定部分中,而不是平等地提供给所有同级兄弟。

关于c++ - 是否可以在C++中添加到类范围?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32653873/

10-11 21:27