C++ 第13章 复制控制---复制构造函数、赋值操作符、析构函数
2015-06-24 14:55
671 查看
每种类型,无论是内置类型还是类类型,都对该类型对象的一组(可能为空的)操作的含义进行了定义。
比如,我们可以将两个int值相加,运行vector对象的size操作等。这些操作定义了用给定类型的对象可以完成什么任务。
每种类型还定义了创建该类型的对象时会发生什么—–构造函数定义了该类类型对象的初始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么—-类通过特殊的成员函数:复制构造函数、赋值操作符和析构函数来控制这些行为。
当定义一个新类型的时候,需要显示或隐式地指定复制、赋值和撤销该类型的对象时会发生什么—–这是通过定义特殊成员:复制构造函数、赋值操作符和析构函数来达到的。如果没有显示定义复制构造函数或赋值操作符,编译器会为我们定义。
复制构造函数是一种特殊构造函数,具有单个形参,该形参(const)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。
析构函数是构造函数的互补:当对象超出作用域或动态分配的对象被删除时,将自动应用析构函数。析构函数可用于释放对象时构造或在对象的生命期中所获取的资源。不管类是否定义了自己的析构函数,编译器都自动执行类中非static数据成员的析构函数。
复制构造函数、赋值操作符和析构函数总称为复制控制。
比如,我们可以将两个int值相加,运行vector对象的size操作等。这些操作定义了用给定类型的对象可以完成什么任务。
每种类型还定义了创建该类型的对象时会发生什么—–构造函数定义了该类类型对象的初始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么—-类通过特殊的成员函数:复制构造函数、赋值操作符和析构函数来控制这些行为。
当定义一个新类型的时候,需要显示或隐式地指定复制、赋值和撤销该类型的对象时会发生什么—–这是通过定义特殊成员:复制构造函数、赋值操作符和析构函数来达到的。如果没有显示定义复制构造函数或赋值操作符,编译器会为我们定义。
复制构造函数是一种特殊构造函数,具有单个形参,该形参(const)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。
析构函数是构造函数的互补:当对象超出作用域或动态分配的对象被删除时,将自动应用析构函数。析构函数可用于释放对象时构造或在对象的生命期中所获取的资源。不管类是否定义了自己的析构函数,编译器都自动执行类中非static数据成员的析构函数。
复制构造函数、赋值操作符和析构函数总称为复制控制。
相关文章推荐
- c++中static总结
- Effective C++ 条款16
- c++ 智能指针用法详解
- C语言深度剖析
- c语言中通过指针将数值赋值到制定内存地址
- C语言的基本输入与输出函数(全解)
- GFX游戏引擎衔接文件简述(一)c++代码部分
- 【C++】explicit构造函数
- C++11新特性总结
- 单片机生成随机数的方法总结
- C++对象、对象数组的排序
- Android C++中线程同步实现
- C语言:stat,fstat和lstat函数
- C++ 虚函数表解析
- C++关键字
- 让VC++编写的MFC多文档程序不自动创建空白窗口
- C++面试中string类的一种正确写法
- C++的Android接口---配置NDK
- C++热键
- C++变量的声明和定义