使用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/