Что такое виртуальный метод в C++?Что такое виртуальный метод в C++?
ответ
Виртуальная функция позволяет производным классам заменять реализацию, предоставляемую базовым классом. Компилятор гарантирует, что замена всегда вызывается всякий раз, когда объект, о котором идет речь, фактически относится к производному классу, даже если к объекту обращается базовый указатель, а не производный указатель. Это позволяет заменить алгоритмы в базовом классе в производном классе, даже если пользователи не знают о производном классе.
Производный класс может либо полностью заменить («переопределить») функцию элемента базового класса, либо производный класс может частично заменить («дополнять») функцию-член базового класса. Последнее выполняется с помощью функции-члена производного класса, если нужно, использовать функцию-член базового класса.
Подробнее здесь:
http://www.codersource.net/c/c-tutorials/c-virtual-function.aspx
Однако это очень простой. Попробуйте Google в следующий раз, прежде чем приходить сюда, чтобы спросить!
Это метод, который рассматривается во время выполнения вместо времени компиляции. Это позволяет работать в таких ситуациях, как полиморфизм.
vtables - это деталь реализации. В стандарте C++ ничего не говорится о «vtables». – fredoverflow
@FredOverflow: Из любопытства, какие реализации не используют vtable? –
Большинство практических реализаций имеют тенденцию использовать vtable, по крайней мере, насколько я знаю. Но Фред делает правильную точку - вопрос спрашивает, что такое виртуальный метод на C++, где C++ - это язык, определенный его стандартом. Интересен тот факт, что реализация может использовать vtable, но это не прямой ответ на поставленный вопрос. –
Virtual functions были изобретены, поэтому вам не нужно переключаться между типами.
- 1. Что такое виртуальный метод вызова в java?
- 2. Что такое виртуальный полиморфизм?
- 3. Что такое виртуальный адаптер
- 4. переопределить виртуальный метод C++
- 5. C# виртуальный статический метод
- 6. C++ виртуальный метод путаницы
- 7. Виртуальный метод переопределяет в C++
- 8. Виртуальный метод заблуждения в C++
- 9. Что такое виртуальный транспорт в контексте ESB?
- 10. Что такое виртуальный (производный) атрибут в Java?
- 11. C++ виртуальный метод не называется
- 12. Как «скрыть» виртуальный метод? (C++)
- 13. Что такое глобальный метод?
- 14. Что такое метод MemberwiseClone()?
- 15. Как убедиться, что метод переопределяет существующий виртуальный в C++?
- 16. Что такое метод inlining?
- 17. Невозможно переопределить виртуальный метод C#
- 18. не виртуальный вызов метода в виртуальный метод, C++
- 19. SQL Server: что такое виртуальный файл журнала?
- 20. Что такое RequestFinalizeOnShutdown метод
- 21. Что означает «попытка вызвать виртуальный метод»?
- 22. Что такое «статический метод» на C#?
- 23. C++. Что такое подпрограмма и метод?
- 24. Override защищенный внутренний виртуальный метод в C#
- 25. Можно ли завершить виртуальный метод в C#?
- 26. реализовать виртуальный метод условный в C++ 11
- 27. C++ добавить виртуальный метод в полиморфный подкласс
- 28. Что такое метод Arrays.free?
- 29. Что такое метод assertThat()?
- 30. Что такое генеративный метод?
попробуйте поиск .... –
@Mitch Wheat; Я согласен с вами, поскольку такой фундаментальный вопрос следует исследовать, а не спрашивать небрежно, особенно без контекста. – BeemerGuy
Возможный дубликат [Может кто-нибудь объяснить C++ Virtual Methods?] (Http://stackoverflow.com/questions/2391679/can-someone-explain-c-virtual-methods) –