Полиморфизм реализован через механизмы …
Другие предметы Колледж Полиморфизм в 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 приводит к выполнению версии метода, определенной в соответствующих дочерних классах.
Таким образом, полиморфизм позволяет нам работать с объектами разных типов через единый интерфейс, что делает код более гибким и расширяемым.