每一个了解C++语言的人,都明白函数参数可以传递引用,也可以传递实体。对于熟悉C++语言的人来说,传递引用与传递实体的区别也都明白,比如:
- 传递引用:类似于传递地址,不需要构建新的实例,如果修改它则实参被修改
- 传递实体:实参和形参是两个完全独立的实例,形参类似局部变量
- 大数据参数的传递,传递引用和传递实体的差别比较大,在如下的示例代码中,使用foo函数比较好,因为避免了在Stack上复制数据。
对于大数据参数而言,使用const Type& data是最优的传递方式。
-
小数据(基本数据类型和数据量不大的类型)参数的传递,两种传递方式差别不是特别大,那么究竟使用实体还是const引用比较好一些呢?示例程序如下: