Виртуальные методы C++
Primary tabs
Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения.
Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.
или =
Виртуальный метод - это метод, который, будучи описан в потомках, замещает собой соответствующий метод везде, даже в методах, описанных для предка, если он вызывается для потомка.
Виртуальные методы существуют для того, чтобы "наследник" вел себя отлично от "предка", сохраняя при этом свойство совместимости с ним.
Проиллюстрировать это можно так - пусть у нас есть два класса:
class Person { virtual string name() const; }; class Student: Person { string name() const; };
тогда мы получаем следующую совместимость:
Student s; Person *p = &s ; p->name(); //вызовется Student::name(); Person n; p = &n; p->name(); //вызовется Person::name()
то есть виртуальные методы являются важным инструментом реализации полиморфизма на практике.
Полезно ознакомиться с этим объяснением
ссылки по теме=
http://www.firststeps.ru/theory/oop/r.ph...
http://logic.pdmi.ras.ru/~smal/aptu/cpp1...
- Log in to post comments
- 3086 reads