/*------------------------
功能:实现动态数组类模板
示例运行结果:
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
--------------------------
Author: Zhang Kaizhou
Date: 2019-4-21 17:19:00
-------------------------*/
#include <iostream>
#include <cassert>
#include <iomanip>
#include <cmath>
using namespace std;
template<class T> // 定义一个动态数组类模板
class Array{
private:
T * list; // 存放为数组动态分配的内存块的首地址
int size;
public:
Array(int size = 50); // 构造函数
Array(const Array<T> & a); // 复制构造函数
~Array(); // 析构函数
Array<T> & operator =(const Array<T> & rhs); // 重载=
T & operator [](int i); // 重载[]
const T & operator [](int i) const; // 重载[]为常函数
operator T *(); // 重载到T * 类型的转换
operator const T *() const;
int getSize() const;
void reSize(int sz);
};
template<class T> // 类模板构造函数的实现
Array<T>::Array(int sz){
assert(sz >= 0); //断言语句判定数组长度应为非负
size = sz;
C++动态数组类模板
最新推荐文章于 2023-11-21 19:46:53 发布