// Базовый класс для состояний автомата A0 class S { protected: // Указатель на объект данных MainData *pMainData; // Входные переменные bool x1(){ return ... } ... bool xN(){ return ... } // Выходные воздействия void z0(){ ... } ... void zK(){ ... } public: // Конструктор S(MainData *pMainData) :pMainData(pMainData){ } // Метод, реализующий действия для состояния virtual S* execute()=0; };