Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Виртуальные методы и функции

йуп32п3 ошфтлоба Ученик (140), закрыт 3 года назад
Для того, чтобы вызвать виртуальный метод, объект должен быть создан через new.
Все виртуальные методы базового класса являются виртуальными и для производных классов.
Виртуальный метод можно вызвать только через указатель на объект.
Виртуальные методы могут быть константными.
Обращение к объекту по ссылке не позволяет вызывать виртуальные методы.
Невиртуальные методы не могут вызывать виртуальные методы.
Виртуальные методы могут вызывать невиртуальные методы.
Лучший ответ
TheCalligrapher Ученик (248) 5 лет назад
Вопрос бессмыслен, ибо в нем не указан конкретный язык программирования.

С++:

> Для того, чтобы вызвать виртуальный метод, объект должен быть создан через new.

Нет. Совершенно не важно как был создан объект.

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

Да. Идентификация метода производится по его сигнатуре: имени и списку параметров.

> Виртуальный метод можно вызвать только через указатель на объект.

Нет. Виртуальный метод можно вызвать через что угодно. Однако полиморфизм (ради которого и существуют виртуальные методы) работает только через указатели или ссылки на объекты.

> Виртуальные методы могут быть константными.

Да.

> Обращение к объекту по ссылке не позволяет вызывать виртуальные методы.

Нет. Позволяет.

> Невиртуальные методы не могут вызывать виртуальные методы.

Нет. Могут.

> Виртуальные методы могут вызывать невиртуальные методы.

Да. Могут.
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (474253) 5 лет назад
Для C#:

Для того, чтобы вызвать виртуальный метод, объект должен быть создан через new. - Да.
Все виртуальные методы базового класса являются виртуальными и для производных классов. - Да.
Виртуальный метод можно вызвать только через указатель на объект. - Нет, можно вызвать из класса-наследника.
Виртуальные методы могут быть константными. - Я ХЗ, что это такое. Статическими не могут быть, если это имелось ввиду.
Обращение к объекту по ссылке не позволяет вызывать виртуальные методы. - Что такое "Обращение к объекту по ссылке"? Объект - это и есть ссылка, вернее, пара ссылок.
Невиртуальные методы не могут вызывать виртуальные методы. - Могут, если они не статические.
Виртуальные методы могут вызывать невиртуальные методы. - Могут.
Похожие вопросы