模板参数的名字,在它被声明为模板参数后,一直到模板声明或定义的结束,都可以被使用,如果在全局域中声明了与模板参数同名的变量,则该变量被隐藏。
typedef double Type;
template<class type>
class Queue
{
public:
//...
private:
Type item; //item不是double类型
Queue* next;
};
模板参数的名字在模板参数表中只能被引入一次。
在不同的了模板声明或定义之间,模板参数的名字可以被重复使用。
类模板的参数可以有缺省实参,这对类型参数与非类型参数都一样。
template<class Type, int size=1024>
class Buffer ;
template<class Type=string,int size>
class Buffer ;
16.2类模板的实例化
Queue<int> q1; 实例化出一个int类型的Queue
模板声明或定义可以引用类模板或类模板的实例。
声明一个类模板实例的指针和引用不会引起类模板被实例化。