Chinaunix首页 | 论坛 | 博客
  • 博客访问: 118165
  • 博文数量: 83
  • 博客积分: 2531
  • 博客等级: 少校
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-31 20:40
文章分类

全部博文(83)

文章存档

2011年(7)

2010年(76)

我的朋友

分类: C/C++

2010-04-23 10:22:38

1、当typename 和class用在模板定义开始部分时,它们的意义相同
   用代替,也就是说下面的语句是相同的。
   template   template
 
2、typename:显示告诉编译器 typename后面的内容代表一个类型
template class foo
{
     void bar()
     {
           T::Bletch *p ;
     }
}
那么这段代码中的T::Bletch *p 是什么意思呢? 是乘法表达式,还是一个指针定义?
T::Bletch是个成员还是个类型?实际上,如果使用类型名,就能解决这种困惑。
template class foo
{
   void bar()
   {
    typename T::Bletch *p ;  //告诉编绎器T::Bletch是一个类型,而不是成员名
   }
}
阅读(783) | 评论(0) | 转发(0) |
0

上一篇:良辰美景虚设

下一篇:不能说出口的痛

给主人留下些什么吧!~~