c++primer要点-拷贝控制

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

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

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

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

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

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

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

 

 

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

拷贝控制示例
  • JY_95
  • JY_95
  • 2015年09月04日 10:18
  • 499

实验测试1《C++ Primer》第五版——第十三章 拷贝控制

String.h#ifndef STRING_H #define STRING_H#include #include #include #include #include #include ...

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

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

《C++ Primer》读书笔记 第13章:拷贝控制

当定义一个类时,我们显式或者隐式地指定此类型的对象拷贝、移动、赋值和销毁时做什么,一个类通过定义五个特殊的成员函数来控制这些操作,包括:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构...

《c++ primer》 第13章 拷贝控制 学习笔记

第 13 章 拷贝控制 1.拷贝,赋值与销毁 对初学c++的程序员来说,必须定义对象拷贝,移动,赋值或销毁时做什么。 拷贝构造函数:如果一个构造函数的参数是本身的引用,且其他的参数都有默认值,此...

c++ primer(第五版)学习笔记及习题答案代码版(第十三章)拷贝控制

笔记较为零散,都是自己不熟悉的知识点。 习题答案至于一个.h 和.cc 中,需要演示某一题直接修改 #define NUM****, 如运行13.30题为#define NUM1330; chapt...
  • refuil
  • refuil
  • 2016年05月31日 17:50
  • 1422

【足迹C++primer】45、拷贝控制示例

拷贝控制示例 那么接下来尽情欣赏这个案例吧!!! /** * 功能:拷贝控制示例 * 时间:2014年7月14日10:57:39 * 作者:cutter_point */ #include #i...

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

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

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

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

重新学习《C++Primer5》第13章-拷贝控制

13.1拷贝、赋值和销毁13.1.1拷贝构造函数1.拷贝构造函数:自定义和合成 2.拷贝初始化 在使用=号时 将一个对象为实参传递给一个非引用类型的形参 从一个返回类型为非引用类型的函数返回一个对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++primer要点-拷贝控制
举报原因:
原因补充:

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