C++移动语义与右值引用详解.pptx

移动语义星空

问题在写程序的过程中,会产生大量的临时对象(右值)临时对象的生命周期很短,仅仅只是起一个过渡作用用完之后,就被销毁了,这样带来了资源的不必要的浪费希望将临时对象直接转移到新对象中,就可以提升程序的执行效率

例子test0函数栈空间_start_finish_end_of_storage_pstr0“hello”_pstr临时对象String“hello”

例子test0函数栈空间_start_finish_end_of_storage_pstr0“hello”_pstr临时对象String“hello”

例子test0函数栈空间_start_finish_end_of_storage_pstr0“hello”_pstr临时对象String“hello”nullptr优化方案:是直接将临时对象申请的堆空间的数据直接转移给新对象strs[0]需求:1.识别出右值2.对右值本身进行修改

左值右值左值:对表达式可以取地址的,称为左值右值:无法对表达式取地址的,称为右值在C++11的标准之前,有没有一种语法可以单独识别出右值?没有C++11之前,右值只能通过const引用进行绑定而同时const引用还可以绑定左值const引用是一个万能引用,当const引用作为函数参数时,无法区分出传递过来的实参是左值还是右值

右值引用在C++11的标准之前,有没有一种语法可以单独

文档评论(0)

1亿VIP精品文档

相关文档