学习笔记 C++
第九章 群体类和群体数据的组织/ 9.2线性群体
C++动态数组类的声明
一 Array<T>& operator= (const Array<T>&rhs); / /重载"="使数组对象可以整体赋值
1.1为什么要重载"="
提示 若不对"="运算符进行重载,系统,会为其自动生成一个隐含的重载函数,该函数会分别对每个数据成员执行"="运算符。
一般而言,当对象需要通过显式定义的复制构造函数执行深复制时,也需要重载赋值运算符,执行类似的深复制操作。
细节 语法规定"=", "[]" ,"()","->"只能被重载为成员函数,而且派生类中的”="运算符函数总会隐藏基类中的"="运算符函数。
template<class T>
Array<T>&Array<T>: :operator= (const Array<T>& rhs) {
if (&rhs !=this) {
//如果本对象中数组大小与 rhs 不同,则删除数组原有内存,然后重新分配
If (size!=rhs.size){
Delete []list; //删除数组原有内存</