C++ 11特性深入学习

若一个类重载  =  符号

class_name& operator=(const class_name& other)

通过函数返回一个临时的class来定义一个  已声明的  变量时 

class_name c = class_name(arg);

会进行较多的工作:先用arg的对应构造函数生成一个临时var, 然后=重载函数将var作为参数才能生成c.

而通过右值引用重载 =

class_name& operator=(class_name&& other)
{
    sawp(this->data, other.data);
}

与上相同的方式定义变量时,直接将other(临时变量)的内部空间变成this的,仅进行一次构造和析构。

右值引用:就是必须绑定到右值的引用,C++11中右值引用可以实现“移动语义”,通过 && 获得右值引用。

右值引用和相关的移动语义是C++11标准中引入的最强大的特性之一,通过std::move()可以避免无谓的复制,提高程序性能。

引用自

 简单地说,减少右值初始化左值的开销。

上一篇:锁查询及处理


下一篇:Linux权限