typage dynamique & compilateur

typage dynamique & compilateur - C++ - Programmation

Marsh Posté le 04-08-2010 à 17:20:23    

Bonjour,
 
je me demandais par quel mécanisme le compilateur sait-il quel est le type dynamique d'une variable ?
 
Par exemple lors de l'appel d'une fonction 'virtual' d'une variable, il va le faire en fonction du type dynamique de la variable, mais par quel mécanisme connait-il ce fameux type ?
Y'a une colonne 'type statique' et une autre 'type dynamique' dans la table des symboles ???
 
 
merci

Reply

Marsh Posté le 04-08-2010 à 17:20:23   

Reply

Marsh Posté le 04-08-2010 à 17:25:40    

Non, dans les cas ou la notion de type dynamique est utile, il n'est pas determinable statiquement.  
 
Des qu'il y a une fonction virtuelle, il y a un champs cache dans les objets qui permet de trouver le type dynamique (ce champs est generalement un pointeur vers une "table des fonctions virtuelles" qui contient des pointeurs vers les fonctions virtuelles et d'autres choses).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 06-08-2010 à 16:38:37    

Oki merci,
 
Pour ceux que ça intéresse le lien wikipedia explique pas trop mal: http://en.wikipedia.org/wiki/Virtual_method_table

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed