La réécriture de fonction signifie qu'une sous-classe crée une implémentation différente d'une fonction portant le même nom que sa classe parent. Elle est généralement utilisée dans les situations suivantes : la sous-classe a des besoins spécifiques qui ne sont pas couverts par la classe parent. Les sous-classes doivent modifier le comportement des fonctions de la classe parent. Le principe de l'isolation des interfaces nécessite que les interfaces des classes parentes soient décomposées en sous-interfaces plus petites.
Occasions de réécriture de fonctions C++ : l'adéquation entre les exigences des sous-classes et l'interface de la classe parent
Qu'est-ce que la réécriture de fonctions ?
Le remplacement de fonction signifie qu'une sous-classe crée une fonction avec le même nom que sa classe parent mais avec des implémentations différentes. Grâce à la substitution, une sous-classe peut étendre ou modifier le comportement de la classe parent pour répondre à ses besoins spécifiques.
Occasions de réécriture de fonctions
La réécriture de fonctions est généralement utilisée dans les situations suivantes :
Cas pratique
Considérons les classes parent et enfant suivantes :
class Animal { public: virtual void speak() { cout << "Generic animal sound" << endl; } }; class Dog : public Animal { public: virtual void speak() override { cout << "Woof!" << endl; } };
Dans la classe Dog
, on remplace la fonction speak()
. Cela permet à l'objet Dog
de parler de manière "Woof!", tandis que l'objet Animal
émet toujours le "Son d'animal générique". Dog
类中,我们重写了 speak()
函数。这允许 Dog
对象以 "Woof!" 的方式说话,而 Animal
对象仍然发出 "Generic animal sound" 的声音。
注意事项
以下是函数重写的一些注意事项:
override
override
pour indiquer explicitement qu'il s'agit d'un remplacement de fonction. 🎜🎜Une fonction remplacée peut avoir une implémentation différente, mais ne peut pas modifier la visibilité (publique, protégée ou privée) de la fonction de classe parent. 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!