You are testing to see if index has the same value as myList.searchList(Me). The compiler has no idea how to compare these two things because you have not written the == operator to compare them.
What kind of object is index, and what kind of object is myList.searchList(Me)? What does it even mean for them to be equal? I don't think you've thought about what you want to do enough.
int List<Type>::searchList(Type searchkey)
{
int location = 0;
int notfound = -1;
for(Node<Type> *pNode = pHead; pNode != NULL; pNode = pNode->pNext)
{
if (*(pNode->nData) == searchkey)
return location; //found item at this location
else
location++;
}
return notfound; //item not in the list
}