您的位置:首页 > 其它

typename的作用

2017-05-19 15:07 148 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: