виртуальные методы



Виртуальный метод

Автор NameX задал вопрос в разделе Другие языки и технологии

С++ виртуальный метод и получил лучший ответ

Ответ от Вася Пупкин[гуру]
Например:
Есть класс Window. Стандартный виндовый какой-нить. Или из какой-нить библиотеки левой. Не важно.
У него есть метод onShutdown() который меня не устраивает. Вот все в этом классе меня устраивает, а onShutdown не устраивает. Что же делать? А вот что:
надо создать класс myWindow. И унаследовать его от класса Window.
Так как в классе Window метод onShutdown виртуальный, то я его могу реализовать в своем классе myWindow так, как захочу.
Остальные методы меня устраивают, знач их я трогать не буду.
Потом в коде я создам экземпляр класса myWindow. И буду работать с ним так, как и раньше работал с Window. Только onShutdown уже будет вызываться тот, что мне нужен. А если бы onShutdown не был виртуальным, то нихера бы не получилось.
Это всего-лишь один из примеров применения...

Ответ от AZ[гуру]
виртуальные методы определяются пользователем в дочернем классе при наследовании.

Ответ от Ёергей Хорошевский[гуру]
Они нужны чтобы через указатель базового класса вызвать функцию производного. Вслучае если указатель базового типа по факту ссылается на обект производного класса. Убери слово Virtual - сравнии - поймеш!
class A
{
public:
virtual void f(void)
{
cout<<"AAAAAA";
}
};
class B: public A
{
public:
void f(void)
{
cout<<"BBBBBB";
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A *te;
A a;
B b;
te=&b;
te->f();
getch();
return 0;
}

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: С++ виртуальный метод

Расскажите, для чего вобще нужны Виртуальные методы?
Читай:

Виртуальный метод (виртуальная функция) — в объектно-ориентированном
подробнее...

подскажите чем виртуальная функция отличается от обычной функции
Виртуальные и динамические методы не связаны с другими методами с тем
же именем в классах —
подробнее...

Что такое метод?
По С. Ожегову метод - это способ теоретического исследования или практического осуществления
подробнее...
спросили в Textron
Delphi: объясните своими словами virtual, abstract и override
Доброго времени суток.

Не вдаваясь в тонкости, можно сказать, что методы классов могут быть
подробнее...

ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
инкапсуляция - включение в класс данных (или других классов) с ограничением доступа к ним.
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Что такое "интерфейс"? Вот, я читаю - "IDisposable - это такой интерфейс..."... и Что такое IDisposable?
Интерфейс - такое хитрое наследование, которое отражает некий аспект поведения, в отличие от
подробнее...

Подскажите по программированию... Что такое в delphi Спецификаторы virtual, abstract, override, dynamic Спасибо!!!
Мне стыдно за Вас. Если вы изучаете делфи, то в книге все описано. Более того, загуглить Вам
подробнее...

Виртуальные методы C++
Тем что пре вызове указателя с типом базового класса будет вызван соответствующий виртуальный матод
подробнее...
спросили в Байт код
В чем отличие байт кода от машинного?
Байт-кодом называется машинный код для виртуальной
подробнее...
спросили в Наивность
Объектно ориентированное программирование. (ООП)
Так никто нормально и не ответил!
Три признака ООП: инкапсуляция, наследование и полиморфизм.
подробнее...

Подскажите как расшифровывается абривиатура PIC- микроконтроллер?
Название PIC является сокращением от Peripheral Interface Controller, что означает "периферийный
подробнее...

чем отличается free от delete[ ] C++
delete вызывает деструктор, free этого делать не
подробнее...

для чего нужны виртуальные функции в C+/+?
Современные программы могут насчитывать десятки тысяч классов, которые связаны между собой
подробнее...
спросили в Академики
Метод академика Бронникова кто испытывал, реально или нет ?
О Методе Бронникова:

У нормально развитого человека головной мозг работает на 3-5%, у
подробнее...

Метод мартингейла
Метод Мартингейла рассчитан на неграмотных людей не знакомых с математикой или которым просто лень
подробнее...
Виртуальный метод на Википедии
Посмотрите статью на википедии про Виртуальный метод
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*