Maison > Article > développement back-end > Comment l’héritage réalise-t-il le polymorphisme en C++ ?
En C++, le polymorphisme est obtenu par héritage, permettant aux objets d'avoir des comportements différents même s'ils ont la même classe de base commune. L'héritage est une méthode de création de nouvelles classes dans laquelle la nouvelle classe (classe dérivée) hérite des membres d'une classe existante (classe de base) et peut ajouter de nouveaux membres. Lorsqu'une fonction virtuelle est appelée à l'aide d'un pointeur ou d'une référence d'un type de classe dérivée, la méthode substituée dans la classe dérivée est appelée.
Qu'est-ce que le polymorphisme ?
Le polymorphisme permet aux objets d'avoir des comportements différents même s'ils ont la même classe de base commune. En C++, le polymorphisme est obtenu grâce à l'héritage.
Héritage
L'héritage est une méthode de création de nouvelles méthodes d'une classe, où la nouvelle classe (classe dérivée) hérite d'une classe existante (classe de base). Une classe dérivée hérite de tous les membres (données et fonctions) de la classe de base et peut également ajouter de nouveaux membres.
Comment le polymorphisme est-il obtenu par héritage ?
En polymorphisme, un objet de classe dérivé peut avoir un pointeur ou une référence à son type de classe de base. Lorsqu'une fonction virtuelle est appelée à l'aide d'un pointeur ou d'une référence d'un type de classe dérivée, la méthode substituée dans la classe dérivée est appelée.
Exemple :
class Animal { public: virtual void makeSound() { cout << "Animal makes a sound" << endl; } }; class Dog : public Animal { public: void makeSound() override { cout << "Woof woof!" << endl; } }; class Cat : public Animal { public: void makeSound() override { cout << "Meow meow!" << endl; } }; int main() { Animal* animal = new Cat(); // 指向 Cat 对象的 Animal 指针 animal->makeSound(); // 输出 "Meow meow!" }
Dans l'exemple ci-dessus :
Animal
est la classe de base. Animal
是基类。Dog
和 Cat
是派生类。makeSound
是一个虚函数,在派生类中重写。animal
是一个指向派生类对象的基类指针。当调用 animal->makeSound()
时,会调用派生类(Cat
)中重写的 makeSound
Dog
et Cat
sont des classes dérivées.
makeSound
est une fonction virtuelle, remplacée dans les classes dérivées. 🎜animal
est un pointeur de classe de base pointant vers un objet de classe dérivé. 🎜Lors de l'appel de animal->makeSound()
, le makeSoundCat
) sera appelé /code>, sortie "Miaou miaou!". 🎜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!