#ifndef STACK_H #define STACK_H #include "complex.h" typedef float TPELEM; //#define _complex_ //typedef Complex TPELEM; #include "stack-iterator.h" class Stack { // Classe Abstrata !!! public: enum TpStack { STACK_CE, STACK_LE }; virtual void push(TPELEM) = 0; // abstract method ... virtual TPELEM pop() = 0; // Late binding !!! virtual bool isEmpty() = 0; virtual bool isFull() = 0; virtual TPELEM top() = 0; virtual StackIterator *iterator() = 0; // Factory Method para construcao de Stack static Stack *create(TpStack); // factory method }; #endif