
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; } 之后的部分 – > (事实上,甚至是参数列表)已经属于该类的词汇范围,因此没有必要的资格.
总结以上是内存溢出为你收集整理的c – 从成员函数返回枚举全部内容,希望文章能够帮你解决c – 从成员函数返回枚举所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)