#include "stdafx.h"
#include <iostream>
using namespace std;
//15.3模板的语法
template<class T> class array //这里T是替换参数,它表示一个类型的名称在包容器类中,它将出现在那些原本由某一特定类型出现的地方
{
enum { size = 100 };//由于类内部的const常量无法用来做数组的大小,所以采用了enum类型,也是常量
T A[size];
public:
T& operator[] (int index)//重载[]来实现元素的插入与取出
{
return A[index];
}
};
int _tmain(int argc, _TCHAR* argv[])
{
array<int> ia;
array<float> fa; //编译器两次扩展了数组模板
for ( int i = 0 ; i < 20 ; i++ )
{
ia[i] = i + 1;
fa[i] = float(i) * 1.414; //元素的插入采用相同的方式
}
for ( int j = 0 ; j < 20 ; j++ )
{
cout << j << ": " << ia[j] << ", " << fa[j] << endl;//取出也采用相同的方式
}
return 0;
}