visual返回c++基类中函数的枚举
visual returning enum from function in C++ base class
我遇到了下面的代码,
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::
。
相关文章:
- C++中构造函数中的枚举
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- 如何使用默认值为构造函数中的枚举赋值?
- 泛型枚举和其他类型的重载模板函数
- 在运行时使用枚举器值作为模板函数的模板参数的元程序
- 函数-本地枚举声明和 ADL 的交互
- 如何从枚举类值中指定模板函数参数中的数组大小?
- 是否可以使用泛型枚举类型作为函数的参数?
- 枚举模板函数一般调用
- 为什么C++不为枚举类型提供默认"operator>>"函数?
- 从枚举中选择适当的函数
- 如何为返回枚举元组的 C++ 函数编写 cython 包装器?
- 如何将带有"any"枚举的 std::map 传递给函数
- 将函数参数限制为某些枚举值
- C++ 成员函数的多个定义,基于枚举模板参数
- 类中的枚举在调用自己的函数时不会改变
- 将全球枚举的全局枚举更改为函数中的int值
- 枚举值依赖函数调用
- 有没有一种方法可以在基于枚举的可变参数模板函数之间进行选择,这比将函数包装在结构中更简单
- 枚举在构造函数和班级中被调用