欢迎来到山村网

C++ 自定义动态数组模板

2019-03-02 09:44:49浏览:775 来源:山村网   
核心摘要: #include stdafx.h  #include iostream  using namespace std;  template class T  class MyArray  {  int len; 

 #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];

  }

  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;

  }

(责任编辑:豆豆)
下一篇:

C++抛出异常技巧讲解

上一篇:

cpp关于const和函数

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com