⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 template.cpp

📁 《游戏编程指南》配套代码 [涉及平台] VC++ [作者] void [文件大小] 1761KB [更新日期] 2005-10-26
💻 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 + -