Я работаю над созданием своего собственного векторного класса, похожего на вектор, который вы найдете в C ++ STL.В моем заголовочном файле есть два класса, мой векторный класс и мой класс итератора, который является вложенным классом шаблона.Мне интересно, какой правильный синтаксис для возвращаемого типа для вложенного класса итератора.В этом случае с моим кодом я ищу правильный способ написать правильный синтаксис возвращаемого типа для моей функции begin()
и моей функции end()
, оба из которых находятся в моем векторном классе.Предполагается, что оба типа begin()
и end()
имеют тип возврата vector <T> :: iterator
, но это, похоже, не работает.Вот как мой код в настоящее время настроен.
template <class T>
iterator;
/************************************************
* VECTOR
* A class that holds stuff
***********************************************/
template <class T>
class vector
{
public:
// code removed for brevity
// Methods of the Vector class
vector <T> :: iterator begin();
vector <T> :: iterator end();
private:
// Code removed for brevity
};
/**************************************************
* VECTOR ITERATOR
* An iterator through array
*************************************************/
template <class T>
class vector <T> :: iterator
{
// ...code removed for brevity
};
Кроме того, у меня есть правильный код для следующих двух строк, которые находятся вверху моего файла .h?
template <class T>
iterator;
Или это будет так?
template <class T>
vector <T> :: iterator;
Спасибо!