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

c – int foo(type&bar);是一种不好的做法?

发布时间:2020-12-16 10:42:21 所属栏目:百科 来源:网络整理
导读:好吧,我们来了.我的C书还有另一个提议的做法.它说“返回值(非空)函数不应该将引用类型作为参数.”所以基本上如果你要实现这样的函数: int read_file(int into){ ...} 并使用整数返回值作为某种错误指示符(忽略我们有异常的事实)然后该函数编写得很糟糕它实
好吧,我们来了.我的C书还有另一个提议的做法.它说“返回值(非空)函数不应该将引用类型作为参数.”所以基本上如果你要实现这样的函数:

int read_file(int& into){
   ...
}

并使用整数返回值作为某种错误指示符(忽略我们有异常的事实)然后该函数编写得很糟糕它实际上应该像

void read_file(int& into,int& error){

}

现在对我来说,第一个更清晰,更好用.如果要忽略错误值,可以轻松完成.但是这本书暗示了后来的.请注意,本书并未说返回值函数是坏的.它宁愿说你应该只返回一个值,或者你应该只使用引用.

你对此有何看法?我的书上装满了废话吗? (再次)

解决方法

建议很愚蠢.直接返回值更小,更容易键入.

直接退货:

if (read_file(...)) {
    ... handle problem ...
}

间接回报:

int status;

read_file(...,status);
if (status) {
    ... handle problem ...
}

编辑:一个更大的问题是是否使用非const引用参数.让副作用飞出参数会令人惊讶.一种编码标准说参考参数应该是const,输出参数应该使用指针.这样读者就可以得到一个&在呼叫点喊出“这个参数发生了什么”.

(编辑:李大同)

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

    推荐文章
      热点阅读