//main.cpp
#include <iostream>
#include "MyStack.h"
using namespace std;
void testStack(MyStack& stack){
for(int i = 1; i < 5; i++)
stack.push(i);
for(int i = 0; i < 4; i++){
cout << stack.top() << "\n";
stack.pop();
}
}
int main(int argc, char** argv) {
MyStack stack;
testStack(stack);
return EXIT_SUCCESS;
}
//MyStack.h
#ifndef MyStack_h
#define MyStack_h
int MAX_SIZE = 10;
class MyStack{
private:
int *m_data;
int m_top;
public:
MyStack():m_top(-1){
m_data = new int[MAX_SIZE];
}
~MyStack(){
delete[] m_data;
}
bool empty(){
return m_top < 0;
}
void push(int i){
if(m_top + 1 < MAX_SIZE)
m_data[++ m_top] = i;
}
void pop(){
if(!empty()) -- m_top;
}
int top(){
if(!empty())
return m_data[m_top];
else
return INT_MIN;
}
};
#endif