C++泛型编程之类模板案例

it2025-03-20  16

案例描述:实现一个通用的数组类。

要求如下:

    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;

 

最新回复(0)