typename的作用

来源:互联网 发布:艾博网络 编辑:程序博客网 时间:2024/05/22 04:41
#include "stdafx.h"
#include <iostream>   


using namespace std;
/*
用法一:     声明template参数时, 前缀关键字class和typename可以互换;
   
用法二:     使用关键字typename标识嵌套从属类型名称, 从属名称在class内呈嵌套装, 如T::const_iterator  ; 
*/

  
template <typename T>
class   A
{
public:


 //typename 指出下面紧跟着的名称是一个类型


typename    T::iterator   iter;  //此处必须有typename ,不然歧义


typedef        typename  T::iterator     iterator; //定义了T::iterator类型别名   
};


class B
{
public:
typedef   int*    iterator;
};
 




int main()
{


A<B>     a;
A<B>::iterator  it;


cout << typeid(a).name() << endl;
cout << typeid(it).name() << endl;


return 0;
}
原创粉丝点击