模板类

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

原文地址:https://www.cnblogs.com/countryboy666/p/10969332.html