0

我的标题有点混乱,让我解释一下。我已经编写了一个类似模板类的链接,以便它可以接受 c++ 中的数据类型(我基本上重写了 std::list 但使用单链表),但是现在我试图在我的 List 模板中定义一个子类 Iterator ,我在很大程度上了解如何实现所有这些,我的问题是关于正确的编码风格。我理解模板我无法将我的类分解成一个单独的头文件和源文件,好的,所以我定义了这个类,在那里放了一些函数模板,然后在下面写了函数......很酷,但现在关于我的子类迭代器,我应该在哪里为这些函数编写代码,不会有太多所以我应该在类中简单地编写它吗?或者我应该把它写在我的列表类之外,但在同一个文件中?如果是这样,我该怎么做,约定 GenList::Iterator::next() 会起作用吗?还是会是别的东西(GenList 是我的链表类,而 next() 将是我为 Iterator 编写的函数)?或者我应该在 GenList 之外但在同一个头文件上定义我的迭代器?如果不清楚,请要求澄清任何部分

4

1 回答 1

0

风格问题是题外话,你使用的编码风格取决于你。如果要在类定义之外定义迭代器类型的成员函数,则语法为:

template<typename T>
  GenList<T>::Iterator
  GenList<T>::Iterator::operator++(int)
  {
    Iterator tmp(*this);
    // increment *this
    return tmp;
  }

就我个人而言,我通常在类定义中定义像内联这样的小成员函数。

是否有充分的理由调用迭代器Iterator而不是传统的iterator

于 2013-02-14T16:14:09.400 回答