Ear*_*rlz 3 c++ reference function
好吧,我们来了.我的C++书籍提出了另一个提议的做法.它说"返回值(非空)函数不应该将引用类型作为参数." 所以基本上如果你要实现这样的函数:
int read_file(int& into){
...
}
Run Code Online (Sandbox Code Playgroud)
并使用整数返回值作为某种错误指示符(忽略我们有异常的事实)然后该函数编写得很糟糕它实际上应该像
void read_file(int& into, int& error){
}
Run Code Online (Sandbox Code Playgroud)
现在对我来说,第一个更清晰,更好用.如果要忽略错误值,可以轻松完成.但是这本书暗示了后来的.请注意,本书并未说返回值函数是坏的.它宁愿说你应该只返回一个值,或者你应该只使用引用.
你对此有何看法?我的书上装满了废话吗?(再次)
Dan*_*wby 10
建议很愚蠢.直接返回值更小,更容易键入.
直接退货:
if (read_file(...)) {
... handle problem ...
}
Run Code Online (Sandbox Code Playgroud)
间接回报:
int status;
read_file(..., status);
if (status) {
... handle problem ...
}
Run Code Online (Sandbox Code Playgroud)
编辑:一个更大的问题是是否完全使用非const
参考参数.让副作用飞出参数会令人惊讶.一个编码标准说参考参数应该是const
,输出参数应该使用指针.通过这种方式,读者可以&
在呼叫点处听到"这个参数发生了什么".
归档时间: |
|
查看次数: |
404 次 |
最近记录: |