1.定义模板类型参数
在c++模板中有两种定义方法:
template<class T>...
template<typename T>...
这两种定义方式有什么区别呢?
相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,
最初定义模板的方法为: template<class T>......
在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了: template<typename
T>......
因此在模板定义语法中关键字class与typename的作用完全一样
2.声明一个类型
typename
的另外一个作用:使用嵌套依赖类型(nested depended name)
template<typename T>
class CLink
{
public:
CLink()
{
phead = new Node();
}
void insertHead(T data)
{
Node* pnewnode = new Node(data);
pnewnode->pnext = phead->pnext;
phead->pnext = pnewnode;
}
void Show()
{
Node* pCur = p