First of all, do not use the line "using namespace std;" (or any other namespace) inside a header file. This is bad. You are not supposed to dump a namespace in a header file (it will make people who use your library (including yourself) very angry in the future).

I don't see a particular reason why your code does not compile. It must be the way you compile it. Now, error messages are usually precise, your description of the error was not. Post the error message to make it clear.

Does the error say: "unresolved external reference to 'ListItr::moveForward'"
or does it say: "class ListItr has no member called 'moveForward'"

In the former case, you have not compiled and linked all the cpp files together. You should have a GCC command line like this:

g++ main.cpp List.cpp ListItr.cpp ListNode.cpp -Wall -o MyProgram

(or have all your cpp files added as "source files" in your project, if you are using an IDE like Visual Studio)

In the latter case, you have forgot to include the ListItr.h in one of the source files that use it (but I doubt that since you are sort-of abusing #includes in your code already).

BTW: if this is not for a school assignment, note that std::list (in #include <list>) is a double linked-list with all the functionality you need, and more (and usable with all the neat stuff in #include <algorithm>).

Well I fixed my original problem, so if Mike is still willing to help, how do I get my isPastEnd() function to work?

ListItr.cpp: In member function ‘bool ListItr::isPastEnd() const’:
ListItr.cpp:23: error: ‘class ListItr’ has no member named ‘tail’
ListItr.cpp: In member function ‘bool ListItr::isPastBeginning() const’:
ListItr.cpp:31: error: ‘tail’ was not declared in this scope
ListItr.cpp:31: error: expected primary-expression before ‘||’ token
ListItr.cpp:31: error: ‘head’ was not declared in this scope
ListItr.cpp:31: error: expected ‘;’ before ‘)’ token