> because another guy is andivising me to do so
Um, ok, but why did you change the function? Don't change stuff just because someone tells you to; change it for a good reason and to fix a specific problem. The original version of print_reverse() looked just fine to me. But what didn't it do, that meant you had to change it?
As for "st undefined", that's probably because you have defined print_reverse() as a global function rather than as a member function of class stack.
When you call print_reverse, obviously this is going to depend on how you've written it, but you call it with MAX_ITEMS-1, i.e. 9. But if, say, only st .. st are defined, you're going to print junk for the first six elements. If st..st are defined, then surely print_reverse will display st, st, st, st, correct? If print_reverse isn't going to recurse, then I'd suggest it shouldn't take an argument.