模板类
#include<iostream>
using namespace std;
//类模板特例化
template <typename T>
class Myarray
{
private:
T data[20];//T 类型数组 可以存放任意类型
int len;//有效长度
public:
Myarray();
T indexof(int index);//返回T类型
void addValue(T value);//添加元素
};
//可以存放任意类型数据的数组
template <typename T>
Myarray<T>::Myarray()
:len(0)
{
}
template <typename T>
T Myarray<T>::indexof(int index)
{
return data[index];
}
template <typename T>
void Myarray<T>::addValue(T value)
{
data[len]=value;
len+=1;
}
template<>
class Myarray<float>
{
public:
Myarray();
};
Myarray<float>::Myarray()
{
cout<<"Myarray<float>::Myarray()"<<endl;
}
int main()
{
Myarray<double> arr; //函数模板会自动判别范型是什么类型
int i=0;
for(i=0;i<10;i++)
{
arr.addValue(i+0.14);
}
for(i=0;i<10;i++)
{
cout<<arr.indexof(i)<<endl;
}
Myarray<float> arry;
return 0;
}