Le problème du cast C, c'est qu'il oblige le compilateur à se taire quelle que soit la débilité de l'erreur qu'on laisse passer.
Oui on peut l'utiliser.
Et puis le jour où on remanie son code, on l'oublie. Et là...
J'ai passé deux heures à chercher un truc que le compilateur aurait pu me signaler immédiatement si j'avais pas fait l'andouille .
Ça m'a servi de leçon .
Question: Que fait un cast C appliqué à une adresse d'objet C++ ?
-Considère la représentation de l'adresse selon un nouveau type (cas du cast en type numérique).
-Change le type pointé par l'adresse (cas aucune parenté).
-Ajuste l'adresse sur la position du type de base (cas du cast en pointeur de type de base).
-Idem, par indirection (si le type de base est virtuel).
-Appelle un constructeur du type du cast (si il existe).
-Apelle un opérateur de conversion du type casté (si il existe).
-Apelle un opérateur de conversion du type renvoyé par une surcharge de l'opérateur d'adresse.
-Supprime ou ajoute const et/ou volatile.
Bon casse-tête...
Les casts qui ne marchent pas:
-adresse en flottant.
-objet en type pas de base, ou sans cast/constructeur défini.
-vers tableau, fonction ou membre.
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone