I'm the smartest man alive
In main(), I did this...
Code:
Stack s(10); // give it a size of 10
s.Push(1);
s.Push(2);
s.Push(3);
std::cout << s.Pop() << std::endl;
std::cout << s.Pop() << std::endl;
std::cout << s.Pop() << std::endl;
Stack's header:
Code:
#ifndef STACK_H
#define STACK_H
#include <iostream>
class Stack
{
private:
int *m_stck;
int m_tos;
int m_size;
public:
Stack(int size);
~Stack();
void Push(int i);
int Pop();
};
#endif
And Stack.cpp:
Code:
#include "stack.h"
// Stack constructor
Stack::Stack(int size)
{
m_tos = 0;
m_stck = new int[size];
m_size = size;
}
Stack::~Stack()
{
if (m_stck) {
delete m_stck;
m_stck = NULL;
}
}
// Pushes a value onto the stack.
void Stack::Push(const int i)
{
if (m_tos == m_size) {
std::cout << "Stack is full." << std::endl;
return;
}
m_stck[m_tos] = i;
m_tos++;
}
// Pops a value from the stack.
int Stack::Pop()
{
if (m_tos == 0) {
std::cout << "Stack underflow." << std::endl;
return -1;
}
m_tos--;
return m_stck[m_tos];
}