Je travaille sur le code de quelqu'un d'autre en C++, et j'ai trouvé un appel bizarre à une certaine fonction func()
. Voici un exemple:Différence entre func() et (* this) .func() en C++
if(condition)
func();
else
(*this).func();
Quelle est la différence entre func()
et (*this).func()
?
Dans quels cas l'appel à func()
et (*this).func()
exécutera-t-il un code différent? Dans mon cas, func()
n'est pas une macro. C'est une fonction virtuelle dans la classe de base, avec une implémentation dans la classe de base et la classe dérivée, et non func()
libre. Le if
est situé dans une méthode de la classe de base.
La classe a-t-elle des valeurs par défaut qui sont remplacées plus tard? – gismo
Est-ce que c'est dans un template de classe? – Niall
Ce code est-il situé dans la classe de base ou dans la classe dérivée? – dasblinkenlight