Well, there are a few problems...
CODE
push();
pop(int x);
should be
CODE
void push(int x);
int pop();
in the class defintion...note there are multiple changes, including the fact that pop should have no argument, while push should (at least accoriding to your member function definitions).
CODE
STACK pop();
//and
STACK push(pushnum);
should likely be
CODE
a.pop();
//and
a.push(pushnum);
unless you are trying to redeclare the object...I assume you mean to use the object you already created.
CODE
STACK::push (int x)
{
top++;
stack[top] = x;
}
should be
CODE
void STACK::push (int x)
{
top++;
stack[top] = x;
}
as by ISO standards, the compiler is looking for a specified return type. I'm not near a compiler, but that should get rid of at least some of the errors...please note that I have not tested this program for functionality...merely done a cursory review to error check the syntax.