//: C10:FibonacciGenerator.h
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
#ifndef FIBONACCIGENERATOR_H
#define FIBONACCIGENERATOR_H

class FibonacciGenerator {
  int n;
  int hodnota[2];
public:
  FibonacciGenerator() : n(0) { hodnota[0] = hodnota[1] = 0; }
  int operator()() {
    int vysledek = n > 2 ? hodnota[0] + hodnota[1] : n > 0 ? 1 : 0;
    ++n;
    hodnota[0] = hodnota[1];
    hodnota[1] = vysledek;
    return vysledek;
  }
  int pocet() { return n; }
};
#endif // FIBONACCIGENERATOR_H ///:~
