gpt4 book ai didi

c++ - 从 C++ 基类中的函数返回枚举

转载 作者:太空狗 更新时间:2023-10-29 23:22:34 24 4
gpt4 key购买 nike

我遇到了以下代码,

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++ 不支持默认 int”

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

我在 VS 2008 上。

最佳答案

你需要

Handler::HANDLER_PRIORITY Handler::GetPriority()
{
...
}

编辑:抱歉没有看到您帖子的其余部分。至于为什么会这样,HANDLER_PRIORTY 没有全局作用域。它是 Handler 的成员,不亚于任何其他成员。所以当然你必须告诉编译器它在哪里,即使用 Handler::

关于c++ - 从 C++ 基类中的函数返回枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com