F.2.5 使用右值引用的构造函数(C++11)

2013-10-07 15:46:57 · 作者: · 浏览: 89

F.2.5  使用右值引用的构造函数(C++(www.cppentry.com)11)

C++(www.cppentry.com)11给string类添加了移动语义。正如第18章介绍的,这意味着添加一个移动构造函数,它使用右值引用而不是左值引用:

 
在实参为临时对象时将调用这个构造函数:
 

正如第18章讨论的,three将获取operator + ()创建的对象的所有权,而不是将该对象复制给three,再销毁原始对象。

第二个使用右值引用的构造函数让您能够指定分配器:

 

调用这两个构造函数中的任何一个后,将存在如下关系:

data( )方法返回一个指针,该指针指向分配的数组副本,该数组的第一个元素是str.data( )指向的;

size( )方法返回str.size()的值;

capacity( )方法返回一个至少等于size( )的值。