Máquina de estados/Instanciación de objetos/Compilación C++

Bueno. Mucho más entendible lo que deseas hacer con tu última explicación. Gracias.
La implementación que expones usando herencia es la óptima a mi entender, ya que desde las funciones miembro (o métodos) también dispones de acceso a los miembros de la clase derivada. Con funciones globales, si necesitas activar o leer el estado de un determinado pin, por ejemplo, deberías recibirlos por parámetro; mientras que si son métodos de clase, puedes utilizar los miembros directamente. Para ello es necesario que la clase herede de la máquina de estados, no que contenga una máquina de estados, que es lo que hacías en tu primer código con tu Class Objeto (no es lo mismo tener una máquina de estados que ser una máquina de estados).
En cuanto a las condiciones para pasar de un estado a otro en la implementación que expones, tal vez se hallen como parte de la propia acción.
En todo caso, siguiendo el mismo método de implementación de acción/transición y tabla de transiciones, puedes establecer la de condiciones. Una de las principales diferencias, como habrás visto, es que tanto la definición a función miembro (typedef void (MAQUINAESTADOS::*Accion)() ) como la estructura que lo usa están DENTRO de la clase.