2024年最全c++引用,阿里P7大佬手把手教你

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取




[]( )去引用

----------------------------------------------------------------------



`std::remove_reference<T>`可以去除T的引用



T: int&& -->int;

T: int& --> int;




[]( )引用折叠

-----------------------------------------------------------------------



当模板类型是引用类型,而且函数参数是模板参数的引用的时候会发生引用折叠。  

如`void func(T&&) ---> 当T==int&`.



> A&& & 折叠成 A&  

> A& & 折叠成 A&  

> A& && 折叠成 A&  

> A&& && 折叠成 A&&



也就是说引用类型和函数参数类型只要有一方为左值引用,就折叠成左值引用;如果双方都是右值引用,才折叠成右值引用。



[]( )move

-----------------------------------------------------------------------



move的作用是将 **左值或者右值** 强制转换成 **右值引用类型**。从而可以把左值或右值参数传入相应的函数。



template

typename remove_reference<_T>::type&& move(T&& _Arg)

{

return static_cast<typename remove_reference<_T>::type<T>&&>(_Arg);

}




如何工作:  

参数T&&保证左值(普通变量,左值引用,右值引用),右值(临时对象)都会进这个函数。



> return:  

> 普通变量 --> 临时对象(函数返回值)  

> 临时对象 --> 临时对象(函数返回值)  

> 左值引用 --> 右值引用  

> 右值引用 --> 右值引用



[]( )forward

--------------------------------------------------------------------------



forward是完美转发,保持变量原有的左右值属性。右值参数–>赋值右值引用 --> 右值引用是变量(左值)–> 参数从右值变左值,调相应左值函数。  

通过forward。右值参数–>赋值右值引用 --> 右值引用是变量(左值)–>forward将右值引用转成右值–> 参数为右值,调相应左值函数。



void f(int&& i)

{

cout << "r ref" << endl;

}

void f(int& i)

{

cout << "l ref" << endl;

}

void warp(int&& i)

{

f(i);

}

void warp1(int&& i)

{

f(forward<int>(i));

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

95%以上C C++开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值