14-4 赋值运算符
在13.1节中已经介绍过赋值运算符的编写,再次不再赘述,主要强调三个原则
- 参数:const引用
- 返回值:左侧对象引用
- 步骤:拷贝参数对象,释放左对象,更新左对象。【处理自赋值】
用初始化列表initializer_list来赋值

和拷贝赋值及移动赋值运算符一样,其他重载的赋值运算符也必须先释放当前内存空间,再创建一片新空间。不同之处是,这个运算符无须检查对象向自身的赋值,这是因为它的形参initializer _list<string>(参见6.2.6节,第198页)确保il与this所指的不是同一个对象。
我们可以重载赋值运算符。不论形参的类型是什么,赋值运算符都必须定义为成员函数。
复合赋值运算符
赋值运算符必须定义成类的成员,复合赋值运算符通常情况下也应该这样做这两类运算符都应该返回左侧运算对象的引用。