加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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; }

之后的部分 – > (事实上??,甚至是参数列表)已经属于该类的词汇范围,因此没有必要的资格.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读