来自Iterator定义的ConstIterator

时间:2018-03-10 12:19:13

标签: c++ class iterator

在树模板类中,通过以下方式从Iterator定义ConstIterator:

template <typename k_T, typename v_T>
class Tree<k_T, v_T>::ConstIterator : public Tree<k_T, v_T>::Iterator {
  using parent = Tree<k_T, v_T>::Iterator;

 public:
  using parent::Iterator;
  const std::pair<k_T, v_T>& operator*() const { return parent::operator*(); }
}; 

但我不清楚using parent::Iterator正在做什么。

1 个答案:

答案 0 :(得分:1)

它继承了parent

的构造函数
  

如果using声明引用了正在定义的类的直接基类的构造函数(例如使用Base :: Base;),那么该基类的构造函数将被继承[...]   继承的构造函数等效于用户定义的构造函数,它们具有空主体,并且具有由单个嵌套名称说明符组成的成员初始化程序列表,该列表将所有参数转发给基类构造函数。

请参阅继承构造函数http://en.cppreference.com/w/cpp/language/using_declaration