C++ 拷贝控制操作(三/五法则)
2020-06-08 本文已影响0人
零岁的我
C++拷贝控制操作(三/五法则)
当定义一个类时,会显示或隐式的指定此类型的对象在拷贝、赋值与销毁时会做什么,这些操作的控制是通过定义三种特殊的成员函数来实现的,分别是拷贝构造函数、赋值运算符和析构函数。
拷贝控制操作
- 拷贝构造函数定义了当使用同类型的一个已存在对象来初始化新对象时会做什么;
- 赋值运算符定义了将一个已存在对象赋值给同类型的另一个对象时会做什么;
- 析构函数定义了此类型的对象销毁时做什么。
由于拷贝控制操作是由三个特殊的成员函数来完成的,所以称为"C++三法则",在较新的C++11标准中,为了支持移动语义,又增加了移动构造函数和移动赋值运算符,这样共有五种特殊成员函数,所以又称为"C++五法则"。也就是说,"C++三法则"是针对较旧的C++89标准说的,"C++五法则"是针对较新的C++11标准说的。为了统一称呼,后来人们干脆把它叫做"C++ 三/五法则"