我们可以通过将拷贝控制成员定义为=default来显示地要求编译器生成合成地版本
class Sales_data{
public:
Sales_data()=default;
Sales_data(const Sales_data&)=default;
Sales_data& operator=(const Sales_data&);
~Sales_data()=default;
};
Sales_data& ::operator=(const Sales_data &)=default;
当我们在类内=default 修饰成员地声明时,合成的函数将隐式地声明为内联。如果我们不希望合成的成员时是内联函数,应该只对成员函数的类外定义使用=default