typename
来源:7-5 深度优先遍历和联通分量
weixin_慕设计6333414
2021-06-03
为什么Graph前面要加typename呢?老师一笔带过实在是听不懂…
写回答
1回答
-
liuyubobobo
2021-06-04
如果你的问题是 28 行的 Graph 前的 typename,你可以尝试一下,不写这个 typename,编译报错。
typename Graph::adjIterator adj中,这个 typename 的意思显示的表示,这个 Graph 是当前这个类的一个模板,而非一个类或者一个命名空间。所以,整体 typename Graph::adjIterator 是一个类型,而不是一个变量(或者函数什么的)(比如你在这个类中调用 Components::id,同样使用了 ::,后面就是一个变量,而非一个类型)
如果你对这个语法不熟悉,说明你对 C++ 的 template 使用的比较少。如果感兴趣,可以再复习一下这方面的知识。在网上搜索一下,也能找到很多对此的讲解。我随便搜了一下,比如这种文章:https://feihu.me/blog/2014/the-origin-and-usage-of-typename/
但如果没兴趣,大概了解就好,这些不是这个课程的重点。可以参考这里:https://coding.imooc.com/learn/questiondetail/vZ85pzYG9Rk6n0rV.html
继续加油!:)
00
相似问题
关于typename Graph
回答 1
CLion中对函数进行定义的问题
回答 1