当前位置:首页 > 开发教程 > C++教程 >

自定义动态数组模板

时间:2013-09-18 11:25 来源: 作者: 收藏

2345软件教程,为您打造全面的软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,2345软件教程都会为您解疑释惑。

核心提示:

#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++教程阅读排行

最新文章