Let us see the Stack Implementation using Constructor and Destructor of Classes
Stack Implementation using Constructor and Destructor
#include<iostream>
using namespace std;
int maxsize=4;
class stack{
private:
int stackarray[4],top;
public:
stack()
{
top=-1;
if(top==-1)
cout<<"Stack created. Stack is empty.";
else
for (int i=top;i>=0;i--)
cout<<"value "<<i+1<<": "<<stackarray[i]<<endl;
}
void push(int number)
{
if(top==maxsize-1)
cout<<"Error stack overflow!\n";
else
top++;
stackarray[top]=number;
}
void pop()
{
if (top==-1)
cout<<"Stack underflow\n";
else
{
cout<<stackarray[top]<<" popped successfully.\n";
top--;
}
}
void display()
{
if(top==-1)
cout<<"Stack is empty.";
else
for (int i=top;i>=0;i--)
cout<<"value "<<i+1<<": "<<stackarray[i]<<endl;
}
~stack()
{
cout<<"Stack Destructed successfully\n";
}
};
int main()
{
stack s1;
char ch;
do{
cout<<"\nPress.. \n"
<<"1 to push\n"
<<"2 to pop\n"
<<"3 to display\n"
<<"4 to end\n\n";
cin>>ch;
switch(ch)
{
case '1':
int n;
cout<<"Enter a number: ";
cin>>n;
s1.push(n);
break;
case '2':
s1.pop();
break;
case '3':
s1.display();
break;
case '4':
cout<<"Exiting...\n\n";
break;
default:
cout<<"Invalid option!\n";
break;
}
}
while(ch!='4');
return 0;
}
Output
