c – 从成员函数返回枚举
发布时间:2020-12-16 09:39:19 所属栏目:百科 来源:网络整理
导读:我想补充返回枚举的函数: 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;} 但以下是可以的: my
我想补充返回枚举的函数:
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;} 为什么枚举返回类型应由范围指定 bool myClass::checkRes(res r){ if (_res == r){retun true;} else {return false;} } 解决方法
因为返回类型不在类的词法范围内.如果您有支持它的C 11感知编译器,请使用尾随返回类型(也称为延迟指定的返回类型):
auto myClass::getRest() -> res{ return _res; } 之后的部分 – > (事实上??,甚至是参数列表)已经属于该类的词汇范围,因此没有必要的资格. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |