Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Если понадобятся другие действия, всегда можно написать собственный функтор по образу и подобию 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 |


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

   



Рефераты от А до Я


Полезные заметки

  •