【问题标题】:What is a type definition inside a class?什么是类中的类型定义?
【发布时间】:2016-03-20 22:28:16
【问题描述】:

我在 Operations.hpp 中定义的 boost 目录迭代器类中发现了这个

class directory_iterator
{
    public:
      typedef path value_type;
}

请问类中的 typedef 是什么意思通常不仅在这种情况下

【问题讨论】:

  • 这是一个绑定到类作用域的类型定义。
  • 你一般问typedef是什么意思?

标签: c++ class typedef


【解决方案1】:

在一般情况下,在 template-ed 类/结构中,您可以知道实例化它使用的类型。

For example:
template< typename T>
class foo 
{
public:
   typedef T value_type;
};

然后你可以做类似的事情

foo::value_type foo_T_Type;

上面的类也有类似的东西

directory_iterator::value_type X; // for whatever the type of path is

【讨论】:

  • 抱歉,没看懂,能不能再解释一下如果有帮助的话是什么模板
  • @MekacherAnis o_O 你还没有进入模板部分并跳入了boost的directory_iterator?可能不是一个好的选择。至于进一步解释,这种 typedef 风格在 C++ 标准模板库、boost 库中随处可见,它是一种通用的和基于策略的设计方法,常用。我的例子不是唯一的一种用途。
  • 这只是一个有趣的项目,它获取一个目录并根据其扩展名对文件夹中的成员进行排序。我在第 13 章,所以下一章是关于模板的
猜你喜欢
  • 2016-10-29
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2018-04-16
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多