Hi, could anyone please tell me what is the problem with the following code :
const int MAX = 100;
class Stack{
protected:
int stk[MAX];
int top;
public:
Stack()
{ top = 0; }
void push(int var)
{ cout<<"Top = "<<top<<end l;
stk[++top] = var;
cout<<"Top after = "<<top<<end l;
}
int pop()
{ cout<<"Top POP = "<<top<<end l;
return stk[top--]; }
};
class Stack2: public Stack
{
public:
void push(int var)
{
//Stack s;
if (top != MAX){
cout<<"Stack2 push"<<endl;
void Stack::push(int var);
}
else
cout<<"Stack is full"<<endl;
}
int pop()
{
if ( top > 1)
return Stack::pop();
else
cout<<"Nothing to pop"<<endl;
}
};
int main(int argc, char *argv[])
{
Stack2 s1;
cout<<"In the Program"<<endl;
s1.push(11);
s1.push(22);
s1.push(33);
cout<<"S 1 = "<<s1.pop()<<en dl;
cout<<"S 2 = "<<s1.pop()<<en dl;
cout<<"S 3 = "<<s1.pop()<<en dl;
cout<<"S 4 = "<<s1.pop()<<en dl;
getchar();
return 0;
}
The error is :
cannot declare member function 'Stack::push' within Stack2
Thanks
const int MAX = 100;
class Stack{
protected:
int stk[MAX];
int top;
public:
Stack()
{ top = 0; }
void push(int var)
{ cout<<"Top = "<<top<<end l;
stk[++top] = var;
cout<<"Top after = "<<top<<end l;
}
int pop()
{ cout<<"Top POP = "<<top<<end l;
return stk[top--]; }
};
class Stack2: public Stack
{
public:
void push(int var)
{
//Stack s;
if (top != MAX){
cout<<"Stack2 push"<<endl;
void Stack::push(int var);
}
else
cout<<"Stack is full"<<endl;
}
int pop()
{
if ( top > 1)
return Stack::pop();
else
cout<<"Nothing to pop"<<endl;
}
};
int main(int argc, char *argv[])
{
Stack2 s1;
cout<<"In the Program"<<endl;
s1.push(11);
s1.push(22);
s1.push(33);
cout<<"S 1 = "<<s1.pop()<<en dl;
cout<<"S 2 = "<<s1.pop()<<en dl;
cout<<"S 3 = "<<s1.pop()<<en dl;
cout<<"S 4 = "<<s1.pop()<<en dl;
getchar();
return 0;
}
The error is :
cannot declare member function 'Stack::push' within Stack2
Thanks
Comment