Эффективное использование STL и шаблонов
Категория реферата: Рефераты по информатике, программированию
Теги реферата: рефераты по политологии, шпаргалки по математике юридические рефераты
Добавил(а) на сайт: Jezrin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Требования 1 и 7 означают, что все описание автомата хорошо бы поместить в конструктор. В конструкторе же надо проверять правильность описания – требование 6.
class SFiniteStateMachine { public: SFiniteStateMachine( <описание автомата> ); . . . private: SFiniteStateMachine(); }; |
Требование 4 означает, что нужно использовать шаблон, параметрами которого будут типы события и состояния.
template <class SState, class SEvent> class SFiniteStateMachine { . . . }; |
Требование 2 означает, что не должно использоваться никаких небезопасных операций вида reinterpret_cast.
О требовании 5 поговорим позже, а сейчас обсудим требование 3. В общем случае количество возможных состояний (то есть количество столбцов в таблице) неизвестно. Неизвестно также и количество событий (то есть количество строк в таблице). Получается, что у конструктора класса, который будет представлять собой автомат, переменное количество аргументов. С первого взгляда кажется, что эту проблему легко решить с помощью функций языка C va_arg(), va_copy(), va_end() и va_start() ([6]). Однако, не все так просто. Для этих функций обязательно нужно предусмотреть признаки окончания списков, а у нас количество элементов в строках и столбцах неизвестно. Размерность же задавать нежелательно. Кроме того, эти функции работают гарантированно только для POD (Plain Old Data), а для произвольных типов возможны неприятности.
Подойдем с другой стороны. Напишем, каким хотелось бы видеть конструктор автомата:
SFiniteStateMachine A( <Стартовое состояние>, <Список состояний>, <Список переходов для состояний> ); |
При таком вызове конструктора путем форматирования текста, набранного моноширинным шрифтом, описанию автомата удастся придать вид таблицы. Пофантазируем:
SFiniteStateMachine A( Рекомендуем скачать другие рефераты по теме: налоги и налогообложение, конспект по русскому. Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата Поделитесь этой записью или добавьте в закладкиКатегории: |