question sur les références

question sur les références - C++ - Programmation

Marsh Posté le 25-02-2010 à 17:24:52    

bonjour,

 

j'ai deux questions sur les références, sivoplé :

 

1) est ce que le mécanisme de polymorphisme (fonctions virtuelles) est le même qu'avec des pointeurs ?

 

i.e. pour :

 
Code :
  1. A a;
  2. B b; // b dérive de A
  3. A & refA = b;
  4. refA.print();
 

si print() est définie virtuelle pour A, et définie/surchargée dans B, alors c'est le print de B qui sera appelé comme avec les pointeurs ?

 

2) apparement il parait qu'une référence ne peut pas être redirigée, à l'inverse des pointeurs.

 

pourtant :

 
Code :
  1. int a = 2;
  2. int b = 3;
  3. int & aa = a;
  4. aa = b; // ici redirection
 

a l'air de compiler. Késako ? Pourriez vous me donner un exemple où ça ne marche pas ?

 

merci


Message édité par in_your_phion le 25-02-2010 à 17:26:52
Reply

Marsh Posté le 25-02-2010 à 17:24:52   

Reply

Marsh Posté le 25-02-2010 à 20:54:13    

1/ et 2/ sont correct.
2/ ne marche pas que si aa est de type int const&

Reply

Marsh Posté le 25-02-2010 à 23:08:56    

Joel F a écrit :

1/ et 2/ sont correct.
2/ ne marche pas que si aa est de type int const&


 
salut
merci..
 
ok, alors pour 2) on peut "rediriger les références" seulement si l'objet pointé n'est pas constant ?

Reply

Marsh Posté le 26-02-2010 à 08:18:53    

aa = b;


Copie la valeur de b dans la variable référencée par aa.
Il n'y a pas de "redirection".
 
Edit : Equivalent a :

a = b;


Message édité par Tarabiscote le 26-02-2010 à 08:22:18
Reply

Sujets relatifs:

Leave a Replay

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