I am trying to create an unordered Linked List and the textbook that I am using says that a linked list iterator class is needed before creating the linked list ADT. Ultimately it will be a functional linked list that can print in reverse, split at a node and merge with another. I have only started the linked List iterator class and the code has been copied from the text, yet does not build. I assume this is a header / forward declaration issue yet I have tried that and still nothing. Any ideas?
//.h file - linkedListIterator.h
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <cstddef>
using namespace std;
#ifndef LINKEDLISTITERATOR_H
#define LINKEDLISTITERATOR_H
template <class Type>
class linkedListIterator
{
    public:
        //Default COnstructor
        linkedListIterator();
    //Constructor with parameter, *curretn = *ptr
    linkedListIterator(nodeType<Type> *ptr);
    //overload deref operator - return info in node
    Type operator*();
    //Overlaod pre inc operator - adv iterator to next node
    linkedListIterator<Type> operator++;
    //Overload equlaity operator - return true if iterator is eq to iter on right
    bool operator==(const linkedListIterator<Type>& right) const;
    //Overload not equal to operator- return true iter is not eq to iter on right
    bool operator!=(const linkedListIterator<Type>& right) const;
private:
    //ptr to current node in linked list
    nodeType<Type> *current;
};
#endif
//.cpp file - linkedListIterator.cpp
#include "stdafx.h"
#include "linkedListIterator.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <cstddef>
using namespace std;
template <class Type>
linkedListIterator<Type>::linkedListIterator()
{
    current = nullptr;
}
template <class Type>
linkedListIterator<Type>::linkedListIterator(nodeType<Type> *ptr)
{
    current = ptr;
}
template <class Type>
Type linkedListIterator::operator*()
{
    return current->info;
}
template <class Type>
linkedListIterator<Type> linkedListIterator<Type>::operator++()
{
   current = current->link;
   return *this;
}
template <class Type>
bool linkedListIterator<Type>::operator==(const linkedListIterator<Type>& right) const
{
    return (current == right.current);
}
template <class Type>
bool linkedListIterator<Type>::operator==(const linkedListIterator<Type>& right) const
{
    return (current != right.current);
}
//main file - CH16_Q4Q6Q7_OrderedandUnordered.cpp
     /nothing here yet/
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <cstddef>
using namespace std;
int main()
{
    return 0;
}
I am receiving errors
C2061 - syntax error: identifier 'nodeType'
C2535 - 'linkedListIterator::linkedListIterator(void)': member function             already defined or declared'
C2143 - syntax error: missing ';' before '<'
C4430 - missing type specifier - int assumed. Note C++ does not support default-int
C2238 - unexpected token(s) preceding';'
C2988 - unrecognizable template declaration / definition
C2059 - syntax error '('
C2649 - 'typename': is not a 'class'
C1004 - unexpected end-of-file found
