13.1拷贝、赋值与销毁
13.1.1拷贝构造函数
当定义一个类时,我们显式或者隐式地指定在此类型的对象的拷贝、赋值、移动、销毁时做什么。一个类通常通过5种特殊的构造函数来控制这些操作,包括:拷贝构造函数(copy constructor)、拷贝赋值运算符(copy assignment operator),移动构造函数(move constructor)、移动赋值运算符(move assignment operator)、析构函数(destructor)。
拷贝构造函数|移动构造函数:定义了当用同类型的一个对象初始化另一个对象时的操作。
拷贝赋值运算符|移动赋值运算符:定义了当一个同类型的对象赋予另一个对象所定义的操作。
析构函数:定义了当此类型对象销毁时的操作。
#include <string>
#include <iostream>
#include <vector>
using namespace std;
class Sales_data{
public:
Sales_data() = default;
Sales_data(const Sales_data &);
public:
Sales_data(int u,double d);
Sales_data(const string &);
private:
string bookno;
int units_sold = 0.0;
double revenue = 0.0;
};
Sal