Lorsque la classe de base et la classe dérivée ont des fonctions du même nom, Peu importe que le nombre de paramètres soit identique ou différent, l'objet de la sous-classe appellera toujours directement la fonction du même nom de la classe dérivée. Si vous souhaitez appeler la fonction du même nom de la classe de base, vous devez utiliser le pointeur de la classe de base ou un guillemet. Si vous souhaitez maintenant utiliser le même formulaire d'appel, vous pouvez appeler la version d'implémentation de fonction de la classe dérivée ou la version d'implémentation de la classe de base, vous devez utiliser une fonction virtuelle. Cependant, l'enseignant a dit que seuls les prototypes de fonction le pouvaient. être déclarées comme fonctions virtuelles si elles sont exactement les mêmes. Ah, alors
pour les fonctions du même nom qui ont des nombres ou des types de paramètres formels différents, comment implémenter la fonction ci-dessus ?
Vous pouvez le définir comme ceci puis le redéfinir selon vos besoins dans les sous-classes :
La racine de ce problème réside dans la façon dont C++ trouve la fonction. Il doit connaître le nom et les paramètres de la fonction, vous devez donc définir clairement les deux. La valeur de retour peut être vague. Par exemple, la fonction de copie dans une sous-classe peut renvoyer. une sous-classe.