细谈 C++ 传参的四种方式:按值传参、按左值引用传参、按常量引用传参以及按右值引用传参

一、引言

一直以来,我对于 C++ 的传参方式只有皮毛上的了解而没有深入其里的探讨。正好,最近在学习《Data Stuctures And Algorithms Analysis In Cpp 4th Edition》这本书的时候,看到作者介绍 C++ 及其 C++11 的传值调用的四种方式的时候,顿觉恍然大悟,有种想要整理一下分享给广大网友的冲动,因此写下了这篇博客。

在这篇博客里,我会像作者那样,首先介绍下传统 C++ 和 C++11 新增的共四种传参方式,然后总结四种传参方式的特点,最后探讨下在实际开发过程中我们该如何选择的问题。

ps: 本篇博客大量参考了《Data Structures And Algorithms Analysis In Cpp 4th Edition》中的解释和代码。也大力推荐各位网友看看这本书,讲解的非常细致到位。

二、传统 C++ 的三种传参方式

我们知道 C 和 Java 都只有一种传参方式,那就是按值传参。

然而,对于 C++ 来说,按值传递一个非常复杂的对象是非常耗费资源的,也是非常低效的。

因此,传统 C++ 理论上是存在三种传参方式的,除了最基本的按值传参,还衍生出来了按引用传参,以及按常量引用传参。

1. 按值传参
按值传参的概念非常好理解,就是函数接收到了传递过来的参数后,将其拷贝一份,其函数内部执行的代码操作的都是传递参数的拷贝。

也就是说,按值传参最大的特点就是不会影响到传递过来的参数的值,但因为拷贝了一份副本&

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值