Рефераты | Рефераты по информатике, программированию | Эффективное использование STL и шаблонов | страница реферата 8 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Если понадобятся другие действия, всегда можно написать собственный функтор по образу и подобию SIgnoreStrategy и передать его шаблону.

    Многие источники, описывающие конечные автоматы, упоминают о возможности вызова функций при входе и выходе из состояния. Такую возможность легко предоставить, используя тот же подход стратегий. Функции входа и выхода из состояний удобно определять для класса, представляющего конкретное состояние. Вспоминая о требовании 5, дадим возможность гибкого управления такой возможностью. Предполагая, что функции класса состояния будут называться OnEnter и OnExit, можно написать несколько готовых функторов: не вызывающий ни одну из функций, вызывающий только OnEnter, вызывающий только OnExit и вызывающий обе функции.

    template <class SState, class SEvent>

    class SEmptyFunctor

    {

        public:

           inline void operator() ( SState &  From, const SEvent &  Event, SState &  To ) { return; }

    };

    template <class SState, class SEvent>

    class SOnEnterFunctor

    {

      public:

      inline void operator() ( SState &  From, const SEvent &  Event, SState &  To )

      { To.OnEnter( From, Event ); }

    };

    template <class SState, class SEvent>

    class SOnExitFunctor

    {

        public:

            inline void operator() ( SState &  From, const SEvent &  Event, SState &  To )

            { From.OnExit( Event, To ); }


    Рекомендуем скачать другие рефераты по теме: налоги и налогообложение, конспект по русскому.



    Предыдущая страница реферата | 3  4  5  6  7  8  9  10  11  12  13 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •