记录,待总结5

 

1.在某些特殊的情况下,赋值运算符必须先释放一些旧值,然后才能根据新值的类型分配新的数据。此时,自复制会出错

2.operator关键字配合要转换的类型,构成了转换运算符的重载函数。该函数没有返回值,但可以在函数中返回一个转换后的值
例1:待举例。

3.两个很重要的例子
例2:

输出:
construct     0012FF38  //a的构造
copy     0012FF34       //b的构造(返回值的构造)
delete     0012FF34     //b的析构(返回值的析构)
delete     0012FF38     //a的析构
解释:
L13中,b是返回值的别名,返回值是*this的复制,*this就是a
因此:b = 返回值 = *this的副本 = a的副本

例3:

输出:
construct     0012FF38   //a的构造
construct     0012FF34   //b的构造
copy     0012FF30        //返回值的构造
=     0012FF34           //把返回值的内容赋值给b
delete     0012FF30      //返回值的析构
delete     0012FF34      //b的析构
delete     0012FF38      //a的析构
解释:
L13中,把返回值的内容赋值给b,然后返回值析构

原文地址:https://www.cnblogs.com/windmissing/p/2559875.html