c++primer要点-拷贝控制

原创 2015年07月10日 19:58:20

1.=default 显式要求编译器生成合成版本;=delete 定义为删除的函数阻止拷贝。

2.右值引用只能绑定到将要销毁的对象;std::move 获得绑定到左值上的右值引用

  移动构造函数的第一个参数应该是该类型的右值引用,移动操作不应抛出异常,可以指明noexcept承诺。标准库容器能对异常发生时其自身行为提供保障。例如,vector的push_back可能需要移动元素。当vector知道元素的移动构造函数不会抛出异常,就可以使用。否则只能使用拷贝构造函数。

  当一个类同时有拷贝和移动构造函数,编译器使用普通的函数匹配规则,移动右值,拷贝左值;当只有拷贝构造函数,则通过拷贝构造函数来“移动”

  make_move_iterator将普通迭代器转换成移动迭代器,移动迭代器解引用生成右值引用

  有时我们希望强制左侧运算对象是个左值,可以在成员函数参数列表后放置一个引用限定符&或&&;引用限定符也可以区分重载版本;如果定义两个或以上相同名字和参数列表的成员函数,就必须所有函数都加引用限定符,或都不加

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c++ primer(第五版)笔记 第十三章(2) 拷贝控制

#include #include // 行为像值的类 class HasPtr{ public: friend void swap( HasPtr& lhp, HasPtr& rhp); ...

C++ Primer : 第十三章 : 拷贝控制示例

拷贝控制示例
  • JY_95
  • JY_95
  • 2015-09-04 10:18
  • 457

读书笔记:C++ primer 5th edition--chapter13.拷贝控制

part1.拷贝、赋值与销毁 1.拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符,析构函数对应的操作称为拷贝控制操作 2.拷贝构造函数 1)第一个参数必须为引用类型。因为在函数调用过...

C++ Primer学习笔记——$13 拷贝控制

题记:本系列学习笔记(C++ Primer学习笔记)主要目的是讨论一些容易被大家忽略或者容易形成错误认识的内容。只适合于有了一定的C++基础的读者(至少学完一本C++教程)。  作者: tyc611,...

【足迹C++primer】43、拷贝控制和资源管理

拷贝控制和资源管理 13.2.1行为像值的类 *定义一个拷贝构造函数,完成string的拷贝,而不是拷贝指针 *定义一个析构函数来释放string *定义一个拷贝赋值运算符来释放对象当前的...

c++ primer(第五版)笔记 第十三章(1) 拷贝控制

// 类的拷贝控制操作 // 拷贝构造函数 copy constructor // 如果一个构造函数,第一个参数是自身类型的引用,且任何额外参数都有默认值,如果是非引用类型,则会调用拷贝构造函...

c++ primer 概念总结第十三章 拷贝控制

在本章中主要学习如何控制该对象的拷贝,赋值,移动和销毁之后需要做什么 我们通过一些特殊的函数来控制这些操作。拷贝构造函数,移动构造函数,拷贝赋值运算符,移动赋值运算符,以及析构函数。 13.1 拷贝...

C++primer学习笔记----拷贝控制

一个类通过定义五种特殊的成员函数来控制拷贝控制操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数。

重读C++ Primer,记录一些之前不易觉察的知识点(13. 拷贝控制)

1.复制构造函数 如果我们没有定义复制构造函数,编译器就会为我们合成一个。即使我们定义了其他构造函数,虽然不会再生成默认构造函数,但是也会生成默认复制构造函数(合成复制构造函数)。合成复制构造函数的行...

《C++ Primer》读书笔记——第十三章_拷贝控制

一个类有5种特殊的成员函数:拷贝构造函数、拷贝赋值运算符、覅用构造函数、移动赋值运算符、析构函数。如果没有定义这些拷贝控制成员,编译器会自动为它定义缺失的操作。 13.1  拷贝构造函数 如果一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)