I'm not as familiar with C++ as I am with other languages like C#.
In the following code, on line 6, are stacks s2,s3,s4,s5 being defined and initialized as copies of s1? The class for Stack has no constructor that takes one parameter. (I think C# would complain that there was no constructor defined that took one parameter.)
int _tmain(int argc, _TCHAR* argv)
for (int i = 1; i < 5; i++)
Stack s2(s1), s3(s1), s4(s1), s5(s1);
friend class StackIter;
sp = - 1;