#ifndef _SUCCESSION_ #define _SUCCESSION_ class Succession { public: virtual int First() = 0; // Reinicializa a sucessão e retorna o seu primeiro elemento a0. virtual int Curr() const = 0; // Retorna o elemento corrente sem fazer avançar a sucessão. virtual int Next() = 0; // Faz avançar a sucessão e retorna o novo elemento corrente. virtual int At(int i) = 0; // Retorna o i-ésimo elemento da sucessão, isto é ai. Entretanto o elemento corrente passa a ser o i-ésimo elemento da sucessão. virtual void Print(int n) = 0; // Escreve os n primeiros elementos da sucessão. Entretanto o elemento corrente passa a ser o n-ésimo elemento da sucessão. }; #endif