Полиморфизм реализован через механизмы …
Другие предметы Колледж Полиморфизм в C++ полиморфизм в C++ основы программирования механизмы полиморфизма C++ для колледжа объектно-ориентированное программирование Новый
Полиморфизм в C++ реализован через механизмы виртуальных функций и наследования. Давайте разберем этот процесс более подробно.
1. Наследование:
2. Виртуальные функции:
Пример:
Рассмотрим простой пример для иллюстрации:
class Animal { public: virtual void makeSound() { std::cout << "Animal sound" << std::endl; } }; class Dog : public Animal { public: void makeSound() override { std::cout << "Bark" << std::endl; } }; class Cat : public Animal { public: void makeSound() override { std::cout << "Meow" << std::endl; } }; int main() { Animal* animal1 = new Dog(); Animal* animal2 = new Cat(); animal1->makeSound(); // Выведет: Bark animal2->makeSound(); // Выведет: Meow delete animal1; delete animal2; return 0; }
В этом примере класс Animal имеет виртуальную функцию makeSound. Классы Dog и Cat наследуют класс Animal и переопределяют эту функцию. Несмотря на то, что указатели animal1 и animal2 имеют тип Animal*, вызов метода makeSound приводит к выполнению версии метода, определенной в соответствующих дочерних классах.
Таким образом, полиморфизм позволяет нам работать с объектами разных типов через единый интерфейс, что делает код более гибким и расширяемым.