当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
C++自定义动态数组模板
发布时间:2010/6/30 10:42:39 来源:城市学习网 编辑:ziteng
  #include "stdafx.h"
  #include <iostream>
  using namespace std;
  template <class T>
  class MyArray
  {
  int len;
  public:
  T *data;
  MyArray()
  {
  data = NULL;
  len = 0;
  }
  ~MyArray()
  {
  delete[] data;
  }
  T& operator [](int index);
  void push(T d);
  };
  template <class T>
  T& MyArray<T>::operator [](int index)
  {
  if(index<0||index>(len-1))
  {
  cout<<"Bad subscript!"<<endl;
  exit(1);
  }
  return data[index];
  } [NextPage]   template <class T>
  void MyArray<T>::push(T d)
  {
  T *pdata = data;
  data = new T[len + 1];
  if(pdata != NULL)
  {
  for(int i = 0 ; i < len ; i++)
  {
  data[i] = pdata[i];
  }
  delete[] pdata;
  }
  data[len] = d;
  len++;
  }
  //测试代码
  int main(int argc, char* argv[])
  {
  MyArray<int>  a;
  a.push(11);
  a.push(22);
  a.push(33);
  a.push(55);
  a[0]=44;
  cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl;
  return 0;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved