I am going to quote from C++ primer plus. If someone can please explain in simpler terms that would be great
given
"
Code:
template <class Type>
bool Stack<Type>::pop(Type & item)
{
if (top > 0)
{
item=items[--top];
return true;
}
else
return false;
}
in main
Stack<char *> st;
char po[40];
First, the reference variable item has to refer to an Lvalue of some sort, not an array name. Second, the code assumes that you can assign to item. Even if item could refer to an array, you can't assign to an array name. So this approach fails, too.