C++——结合typedef和typename的语句的含义
C++ - meaning of a statement combining typedef and typename
在C++头文件中,我看到的代码是:
typedef typename _Mybase::value_type value_type;
现在,据我所知,引用Schildt的《C++完整参考》。typename
可以用关键字class代替,typename
的第二个用途是通知编译器模板声明中使用的名称是类型名,而不是对象名。
类似地,您可以使用关键字typedef
定义新的数据类型名称。你不是实际上是在创建一个新的数据类型,而是为现有数据类型定义一个新名称类型
然而,你能确切地解释一下上面这行代码的含义吗?typedef
和typename
组合在一起。声明中的"::
"意味着什么?
typedef正在定义一个新类型,以便在代码中使用,就像速记一样。
typedef typename _MyBase::value_type value_type;
value_type v;
//use v
typename让编译器知道value_type
是一个类型,而不是_MyBase
的静态成员。
CCD_ 9是该类型的范围。这有点像"在",所以value_type
"在"_MyBase
。或者也可以被认为是包含的。
typename
表示_Mybase::value_type
是类型的名称,因此typedef
可以与此事实相关。
相关文章:
- 多态性和功能结合
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 如何在C 中结合两个选择语句
- C++——结合typedef和typename的语句的含义