C++参数类型的合理选用

本文探讨了C++中参数类型的合理选用,包括传值、传指针、传引用、传右值引用、传智能指针及其const约束。强调了在不同场景下选择不同参数类型的重要性,如考虑对象大小、是否需要修改、所有权转移和生命周期管理等。此外,还讨论了成员函数的const约束,以及如何通过常左值引用和右值引用的合并来优化对象拷贝和移动操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++参数类型的合理选用

前言

  • 在传统C++中, 函数的参数类型主要有三种: 传值传指针传引用
  • C++11开始,多了一种叫做 右值引用的类型,以及一些智能指针类型(shared_ptrweak_ptrunique_ptr)

各参数类型的最佳适用场景

传值

  • 传值开销 比 传指针和引用开销更小,如: charchar *char &占用内存更小
  • 函数内部明确需要参数的副本

传指针

  • 结构体,体积较大,并且设计到不通类型的地址转换
  • 内存字节操作
  • 参数需要分为空与非空
  • 多个对象内存连续

传引用

  • 单个对象,体积较大
  • 需要对参数对象做修改
  • 函数内明确不能使用空对象

传右值引用

  • 需要将参数对象的所有权转移

传智能指针

  • 需要区分空与非空,并且设计对象生命周期管理的,如:

当参数对象需要共享时,使用 shared_ptr
当参数对象需要独占,只能进行转移时,使用 unique_ptr
参数中不使用 weak_ptr, weak_ptr仅用于共享对象之间的互相引用解决引用环

const约束

  • 当参数明确表示函数内部不会进行修改时,无论是引用类型参数还是指针类型参数,都应该加上 const约束,如:
void funcRef
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值