C++-关键字class和typename的相同点和区别在哪里

项目合作 项目合作 主题:1029 回复:2134

C++-关键字class和typename的相同点和区别在哪里

清晨说ぺ晚安 发布于 2017-09-09 字数 256 浏览 1110 回复 1

可能重复的问题
C++模版使用 typename 和 class 有什么区别?

在C++中,经常用到关键字class和typename。

那么这两个关键字的相同点和区别是什么?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

虐人心 2017-09-24 1 楼

在模板中,定义模板类型template<class T>和template<typename T>都是一样的。C++书上说,因为template里面的class和类定义class名字有重合,为了防止歧义,引入typename来取代template中的class。typename 引入的初衷是用在区别是类型还是静态成员变量,如:someclass::joke
如果没有typename 修饰,就无法知道joke是类型还是静态成员变量
如果someclass中出现 typedef char* joke
则一定要typename指明。这才是typename的关键。