通过比如vector<int> 实际上是调用了类似模板template<T t>class vector{...}实例化了一个使用int的vector类来进行定义,我们可以尝试简单的做一个自己的array类
template<typename T1 ,int d2>
class array1
{
private:
T1 *p;
int size;
public:
array1(initializer_list<T1> in)//使用大括号{1,2,3,4}初始化
{
size=in.size();
cout<<"size = "<<size<<endl;
p=new T1[in.size()];
int t=0;
for(T1 i:in)
{
p[t++]=i;
}
}
~array1()
{
delete[] p;
}
void show()
{
for(int i=0;i<size;i++)
cout<<p[i];
}
T1 &operator[](int num)
{
return p[num];
}
int size1()
{
return size;
}
};
int main(void)
{
array1<int,4> b{1,2,3,4};
for(int i=0;i<b.size1();i++)
{
cout<<b[i];
}
return 0;
}
运行结果