曲径通幽论坛
标题:
何时使用指针,引用以及按值传递
[打印本页]
作者:
beyes
时间:
2012-1-14 11:07
标题:
何时使用指针,引用以及按值传递
在函数中使用引用参数的原因主要有两个:
1. 能够使我们修改调用函数中的数据对象。
2. 通过传递引用而不是整个数据对象,可以提高程序的运行速度。
当对象较大时(如结构和类对象),第二个原因最重要,使用指针作为参数也是基于同样的原因。实际上,引用参数是基于指针的代码的另一个接口。下面是对何时使用引用,何时使用指针,何时按值传递的一些指导原则:
对传递的值不做修改的函数
:
1. 如果数据对象很小,如内置数据类型或小型结构,那么按值传递。
2. 如果数据对象是数组,则使用指针,因为这是唯一的选择,并将指针声明为指向 const 的指针。
3. 如果数据对象是较大的结构,则使用 const 指针或 const 引用,这样可以提高程序效率,还可以节省复制结构所需要的时间和空间。
4. 如果数据对象是类的对象,那么使用 const 引用。类设计的语义常常要求使用引用,这是 C++ 新增这项特性的主要原因。因此,传递类对象参数的标准方式是按引用传递。
对于要修改调用函数中数据的函数
:
1. 如果数据对象是内置数据类型,那么使用指针。
2. 如果数据对象是数组,那么只能使用指针。
3. 如果数据对象是结构,则既可以使用指针也可以使用引用。
4. 如果数据对象时类对象,则使用引用。
当然,上面只是一些指导原则,具体情况具体分析,也可能有充分的理由做出其他的选择。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2