class MainData {
public:
    // Конструктор
    MainData(){
        // Инициализация автомата
        ...
        // Создание объектов состояний
        pS0 = new S0(this);
        ...
        pSL = new SL(this);
    }
    // Деструктор
    virtual ~MainData(){
        // Уничтожение объектов состояний
        delete pS0; ... delete pSL;
    }
    // Указатели на объекты состояний
    S *pS0;
    ...
    S *pSL;
    // Внутренние переменные
    ...
    // Функции, реализующие события
    ...
};