Arv*_*ind 55 c++ typedef typename
在C++头文件中,我看到这段代码:
typedef typename _Mybase::value_type value_type;
Run Code Online (Sandbox Code Playgroud)
现在,据我所知,引用Schildt撰写的" C++完整参考文献 ".typename可以用关键字类代替,第二个用途typename是通知编译器模板声明中使用的名称是类型名而不是对象名.
同样,您可以使用关键字定义新的数据类型名称typedef.您实际上并未创建新数据类型,而是为现有类型定义新名称.
但是,您能否准确解释上述代码行的含义,在哪里typedef和typename哪些结合在一起.::声明中的" "是什么意思?
pip*_*289 57
typedef定义了一个在代码中使用的新类型,比如速记.
typedef typename _MyBase::value_type value_type;
value_type v;
//use v
Run Code Online (Sandbox Code Playgroud)
这里的typename让编译器知道这value_type是一个类型,而不是一个对象_MyBase.
这::是该类型的范围.它有点像"在",所以value_type"在" _MyBase.或者也可以被认为是包含的.
typename也就是说,这是_Mybase::value_type类型的名称,因此typedef可以依赖这个事实。
| 归档时间: |
|
| 查看次数: |
36264 次 |
| 最近记录: |