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,输出参数应该使用指针.这样读者就可以得到一个&在呼叫点喊出“这个参数发生了什么”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |