案例描述:实现一个通用的数组类。
要求如下:
1、可以对内置数据类型以及自定义数据类型的数据进行存储
2、将数组中的数据存储到堆区中
3、构造函数中可以传入数组的容量
4、提供对应的拷贝构造函数以及operator=防止浅拷贝问题
5、提供尾插法和尾删法对数组中的数据进行增加和删除
6、可以通过下标的方式访问数组中的元素
7、可以获取数组中当前元素个数和数组的容量
总体思路:
1、创建一个通用的模板数组类。
类的私有属性:数组容量、数组中的数据个数、数组容量所需要的内存空间(指针)
类的构造函数:实现传入数组的容量,初始化数组个数、根据容量开闭数组所需的内存空。
拷贝构造函数:传入一个数组(const MyArray &arr),实现数组的拷贝。
拷贝内容包括数组容量、数组中的数据、数组所占内存空间。
数组所占用的内存空间用指针表示,所以拷贝指针时要用深拷贝。
operator=函数:返回的是数组类的引用(MyArray&)。先把堆区中的数据是放干净,
再进行深拷贝(容量、数组大小、内 存空间),然后,再把拷贝
的数组的内容放到新拷贝的内存中,最后,return *this;
尾插法:判断容量是否充足,不足则return; 足够则在原本的数据后追加
数组this->pAddress[this->m_Size]=val;然后更新数据个数(this->m_Size++)
尾删法:先判断数组中的数据个数是否为0,为0则return。反之,直接隐藏最后一个数据即可,
数据的个数减去1,不让用户看到最后一个数据(this->m_SIze--)。
获取元素个数:return this->m_Size;
获取容量: return this->m_Capacity;