首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++函数返回参数的形式,用引用好还是直接返回好

2013-11-29 
C++函数返回参数的方式,用引用好还是直接返回好C++写函数,最近发现返回int型标识函数调用成功与否,把函数

C++函数返回参数的方式,用引用好还是直接返回好
C++写函数,最近发现返回int型标识函数调用成功与否,把函数真正需要返回的参数用引用传入,这样写起来感觉比较流畅。还可以通过返回值直接判断调用成功与否。可是引用传递好像不是线程安全的,有大牛能指出引用不安全的地方吗?还有建议下直接返回跟引用传递孰优孰劣! C++ 函数 引用 返回值 多线程
[解决办法]
讨论线程安全意义可能不大吧? 毕竟在多线程前提下,传值和传引用效果都不一样,不好比较吧。
不可能把所有的函数都设计成线程安全的,保证线程安全可能会有额外开销,有时这是不能接受的。因此线程安全与否往往属于函数的约定(contract)范畴。

个人建议,如果是只返回即纯out的参数使用指针传参;即 in 又 out 使用非const引用传参数。
前提是函数需要同时返回结果和错误两种信息或者同时返回多个结果,并且函数(即使返回错误的状况下)对性能要求苛刻。

如果函数只需要结果,或者把结果与错误混在一起不易引发任何误解(比如 malloc 返回0肯定是错误而不是结果),并且函数(即使返回错误的状况下)对性能要求苛刻,并且返回单一结果,那么应该使用返回值进行返回而不是参数。

如果是其它一般情况,强烈建议使用返回值返回结果,使用异常报告错误。

各种用法要前后一致,所有状况下,函数的声明(返回值类型、参数类型及名称、函数名)要能恰当的反应函数的用法、用途。
[解决办法]
就你这个问题 
1.返回值是值拷贝 传引用值是地址级的改变值 效率来说引用来说高点 
2.至于安全的话就类似于你用指针和不用指针的区别 主要考虑你传入的引用地址是否合法。

热点排行