C++类模板:模板内的typename名字将屏蔽模板外部的名字

原创 2007年11月09日 12:27:00

 

// 类模板中的类型名字可以屏蔽定义外部的名字 
#include <iostream>
#include 
<string>
using namespace std;
// 模板外部对double起了个类型别名T 
typedef double T;

template 
<typename T>
void show(const T& t)
...{
    
// 模板内部的T已经不是外部那个double别名T
    
// 外部的T被屏蔽 
    T k(t);
    cout 
<< k << endl;
    
return ;
}


int main()
...{
    T t 
= 3.14;
    
string str("yao");
    show(str);
    show(t);
    getchar();
    
return 0;
}


名字查找,模板,和基类成员访问

原文来自 http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html       C++标准规定,当解析一个模板函数或模板类时,所有不依赖于模板形参的名字...
  • Miskcoo
  • Miskcoo
  • 2013年03月25日 21:47
  • 327

Effective C++第七章-模板和泛型编程之typename与嵌套从属名称

typename在template的声明式中 template< class T>//声明方法1 template< typename T>////声明方法2,使用typename 可以暗示参数不一...
  • mlyjqx
  • mlyjqx
  • 2017年07月19日 08:56
  • 124

C++中typename和class在声明模板时的区别

问题在下面的 template declarations(模板声明)中 class 和 typename 有什么不同?template class Widget; // uses "class" te...
  • gatieme
  • gatieme
  • 2016年03月21日 14:21
  • 1895

C++ - 模板(template)中typename的使用方法

模板(template)中typename的使用方法 http://blog.csdn.net/caroline_wendy/article/details/23910709 声明templ...

关于C++中模板中的typename和class的区别比较

C++箴言:理解typename的两个含义 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同?template class Wi...

关于C++中模板中的typename和class的区别比较

问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // uses "class"...

C++中 模板Template的使用 (typename)

1、在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 答:class用于定义类,在模板引入c++后,最初定义模板的...

C++模板中关键字typename与class的区别

在C++里,不管是模板函数,还是模板类,均会用关键字typename和class来指定模板类型。对于模板函数与模板类的使用请自行参考:C++ Primer中文版 。 但是为什么要用两个关键字呢,...
  • leiych
  • leiych
  • 2013年06月06日 22:18
  • 1202

关于C++中模板中的typename和class的区别比较

C++箴言:理解typename的两个含义 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template ...

C++中template<class T> && template <typename T>(模板区分)

问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同?  template class Widget; // use...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++类模板:模板内的typename名字将屏蔽模板外部的名字
举报原因:
原因补充:

(最多只允许输入30个字)