visual返回c++基类中函数的枚举

visual returning enum from function in C++ base class

本文关键字:函数 枚举 基类 返回 c++ visual      更新时间:2023-10-16

我遇到了下面的代码,

class Handler
{
public:
   Handler() {}
   ~Handler() {}
    enum HANDLER_PRIORITY {PRIORITY_0, PRIORITY_1, PRIORITY_2};
    virtual HANDLER_PRIORITY GetPriority();
private:
    HANDLER_PRIORITY m_priority;
}

在。cpp文件中有这个

HANDLER_PRIORITY Handler::GetPrioity()
{
   return PRIORITY_0;
}

我得到一个编译错误,"缺少类型说明符-假设为int"。注意:c++不支持default-int"

我知道不像C, c++不支持default-int返回。但是为什么它不能识别枚举返回类型呢?如果我将HANDLER_PRIORITY的返回类型替换为int/void,或者如果我在类本身中定义该方法,则可以正常工作。(内联)或者将返回类型更改为Handler::HANDLER_PRIORITY。

你需要

Handler::HANDLER_PRIORITY Handler::GetPriority()
{
...
}
编辑:很抱歉没有看到你的帖子的其余部分。至于为什么会出现这种情况,HANDLER_PRIORTY没有全局作用域。它是Handler的成员,不小于任何其他的。因此,当然你必须告诉编译器它在哪里,即使用Handler::