📄 template.cpp
字号:
#include <iostream>
using namespace std;
template <class T> //这是一个所谓的prefix,即前缀。< >内为模板参数,在这
//里是一个类T。有了这个前缀,下面的半条语句就可以把T
//当作一个类的名称使用
class List
{
private:
T *a; //a是一个指向T类型的数据的指针
public:
int size;
List(int n);
T operator[ ](int i); //List[ ]的返回值为T类型的数据
~List();
};
template <class T> List<T>::List( int n ) //哇!这是天书吗......
//其实很好懂,首先把前缀去掉,
//剩下的List<T>中的<T>是必须
//重复一次的参数表
{
a = new T[n]; //使a成为一个成员为T类型的数据的数组
for (int i=0; i<n; i++)
a[i]=(T)(i+47); //给a数组分配内容
size = n;
}
template <class T> List<T>::~List()
{
delete[] a;
}
template <class T> T List<T>::operator[ ](int i) //注意List<T>前的T是这个函数的返回值的类型
{
return a[i]+1; //和普通的[]有一点小小的区别
}
void main()
{
List <char> c(10); //<char>给模板提供参数,说明T即char
//我们完全可以把char看成是一个类
for (int i=0;i<c.size;i++)
cout<<c[i];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -