#include // Fichier Stack.cpp #include "Stack.h" template Stack::Stack(void) : _size(0) {} template Stack::Stack(const Stack& s) { _copy(s); } template Stack& Stack::operator=(const Stack& s) { if (this != &s) { _destroy(); _copy(s); } return *this; } template Stack::~Stack(void) {} template bool Stack::empty(void) const { return _size == 0; } template bool Stack::full(void) const { return _size == MAX; } template int Stack::size(void) const { return _size; } template const T& Stack::top(void) const { assert(!empty()); return _stack[_size - 1]; } template void Stack::push(const T& t) { assert(!full()); _stack[_size++] = t; } template T Stack::pop(void) { assert(!empty()); return _stack[--_size]; } template void Stack::_copy(const Stack& s) { _size = s._size; for(int i=0; i< _size; i++) { _stack[i] = s._stack[i]; } } template void Stack::_destroy(void) { } template ostream& operator<<(ostream& os, const Stack& s) { os << endl ; os << " Une Stack :" << endl; for(int i=s._size-1; i>=0; i--) { if (s._size==1) os << "sommet & fond : "; else if (i==s._size-1) os << " sommet : "; else if (i==0) os << " fond : "; else os << " "; os << s._stack[i]; os << endl; } os << "~~~~~~~~~~~~~~~" << endl; return os; }