好了,我们到了。我的 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
并且输出参数应该使用指针。这样,读者在调用时会得到一个 &
,大声喊出“此参数发生了一些变化”。
关于c++ - int foo(类型和栏);是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2639199/