C++ 移动语义
# 移动语义(Move Semantics)
在 C++ 11 之前,当对象作为函数参数传递,或者从函数返回,或者作为复制构造函数的参数时,经常会造成不必要的性能开销,因为这些操作会进行对象的拷贝,包括其资源的拷贝(如动态分配的内存)。为了解决这个问题,C++ 11 引入了移动语义。
为什么要用移动语义?
移动语义 的核心思想是,当一个临时对象提供了右值引用时,可以将其内部资源 “移动” 到新的对象中,而不是进行复制。这样,新对象可以重用临时对象的资源,而临时对象在移动后会处于有效但未定义的状态。
好处:
性能提升:避免了不必要的资源复制,减少了性能开销。
资源利用:可以重用临时对象的资源,
more...