从成员函数返回enum
Return enum from member function
我想实现返回enum的函数:
class myClass{
private:
res _res;
public:
enum res{ok,fail};
res getRes()
bool checkRes(res r);
//other function that change _res value
}
这个实现产生编译错误:
res myClass::getRes(){return _res;}
但以下是可以的:
myClass::res myClass::getRes(){return _res;}
为什么enum返回类型应该由作用域指定,而作为实参,enum的类型范围是不必要的——下面的工作正常:
bool myClass::checkRes(res r){
if (_res == r){retun true;}
else {return false;} }
因为返回类型不在类的词法作用域中。如果您有支持c++ 11的编译器,请使用末尾返回类型(也称为后指定返回类型):
auto myClass::getRest() -> res{ return _res; }
->
之后的部分(事实上,甚至参数列表)已经属于类的词法作用域,因此不需要限定条件。
相关文章:
- enum是C++中的宏变量还是整数变量
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 访问者访问变体并返回不同类型时出错
- 返回enum或通过引用传递enum
- 好的样式-返回enum或int
- C++函数,接受enum并返回要在模板中使用的typedef类类型
- 从成员函数返回enum
- 通过ENUM查找返回元组值(不同类型)的模板函数
- 返回特定于类的enum
- 如何创建这样的c++函数,将enum作为参数/参数,并返回它
- 构造函数中使用的c++ Enum返回函数
- 从其他类的成员函数返回ENUM(在一个类中定义)
- 通过函数返回enum