Bah, en principe, c'est un cas classique de polymorphisme, tu as une classe de base Bloc avec plein de méthodes virtuelles, et des classes dérivées qui les implémentent. Je ne vois pas vraiment où est ton problème.
Folco (./6) :
edit -> toute façon ça marchera pas mon truc, si j'ai un pointeur sur bloc_de_base, un appel à estCeQueJePeuxEntrer () utilisera toujours la méthode du bloc de base, et non la méthode du bloc dérivé ou du bloc défini dans l'union 
As-tu déjà entendu parler de méthodes virtuelles?

(Et pas besoin d'union, just de pointeurs Bloc *, qui acceptent automatiquement des pointeurs vers un objet d'une classe dérivée.)