數據結構--數組類實現
阿新 • • 發佈:2019-01-16
ces ESS 數組訪問操作符 mar set 封裝 長度 color 存儲 實現的目標
一 需求分析
A:創建數組類代替原生數組的使用
1.數組類包含長度信息
2.數組類能夠主動發現越界訪問
二Array(數組類)設計要點
1抽象類模板,存儲空間的位置和大小由子類完成
2.重載數組操作符,判斷訪問下標是否合法
3.提供數組長度的抽象訪問函數
4.提供數組對象間的復制操作
由以上的分析可以得出Array類的聲明
template <typename T> class Array:public Object { protected: T* m_array; public: virtual bool set(int i,const T&e); virtual bool get(int i,T& e)const; virtual int length()const=0; //數組訪問操作符 T& operator[](int i); T operator[](int i)const; };
三StaticArray設計要點
A:類模板
1.封裝原生數組
2.使用模板參數決定數組大小
3.實現函數返回數組長度
4.拷貝構造和復制操作
//StaticArray類的聲明 template<typename T,int N> class StaticArray:public Array<T> { protected: T* m_space[N]; public: StaticArray(); //拷貝和賦值操作 StaticArray(const StaticArray<T,N>& obj); StaticArray<T,N>& operator=(const StaticArray<T,N>& obj); int length()const; };
四.DynamicArray設計要點
A.類模板
1.動態確定內部數組空間的大小
2.實現函數返回數組長度
3.拷貝構造和賦值操作
//DynamicArray類的聲明 template<typename T> class DynamicArray:public Array<T> { protected: int m_length; public: DynamicArray(int length); DynamicArray(const DynamicArray<T>& obj); DynamicArray<T>& operator=(const DynamicArray<T>& obj); int length()const; void resize(int length);//動態重置數組的長度 ~DynamicArray(); };
數據結構--數組類實現