vototvet
Автор вопроса: Иван Лушкин
Опубликовано: 02/04/2023

Можно ли вызывать виртуальные методы в конструкторе?

У нас есть 17 ответов на вопрос Можно ли вызывать виртуальные методы в конструкторе? Скорее всего, этого будет достаточно, чтобы вы получили ответ на ваш вопрос.

Можно ли вызывать виртуальный метод в конструкторе?

При вызове виртуального метода из конструктора учитывается тип времени выполнения создаваемого экземпляра. Исходя из этого типа и происходит виртуальный вызов. Несмотря на то, что вызов метода происходит в конструкторе базового типа, фактический тип создаваемого экземпляра – Derived, что и определяет выбор метода.

Как вызвать чисто виртуальную функцию?

Виртуальную функцию можно вызвать обычным способом, используя имя объекта и оператор «.», но полиморфизм достигается только при обращении к ней через указатель.

Можно ли вызывать виртуальные методы в конструкторе? Ответы пользователей

Отвечает Владимир Савельев

@Mikhailo: Как же нету? А откуда методу CallReport на этапе компиляции знать, что ему нужно вызвать именно Second::Report ? – VladD. 17 ...

Отвечает Люся Аленький

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

Отвечает Юрий Иванов

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

Отвечает Анатолий Елов

В С++ вызов виртуального метода в конструкторе базового класса будет просто вызывать метод, как если бы производный класс еще не существует (потому что это ...

Отвечает Наталья Мазанова

Конструктор незапечатанного типа вызывает виртуальный метод, определенный в его классе. ... Как видно из выходных данных, DerivedType.

Отвечает Кристина Рыжкова

следовательно всю механику обозначили как UB. если так, тогда весь полиморф можно назвать одним большим UB. потому что вызвать чисто-виртульную ...

Отвечает Борис Кочетков

Вы можете вызвать виртуальную функцию в конструкторе. ... Метод коры в классе собаки вызывается как в конструкторе, так и в деструкторе.

Отвечает Милена Ярусова

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

Отвечает Юлия Иванько

Внутри конструкторов и деструкторов виртуальные функции теряют виртуальность. ... если эти функции вызывают виртуальные функции, как, например, ...

Можно ли вызывать виртуальные методы в конструкторе? Видео-ответы

Уроки С++. Совет #5. Не вызывайте виртуальные функции в конструкторе и деструкторе. #ityoutubers

Эффективный С++. Советы от Скотта Мейерса. Эффективное программирование на языке С++.

Виртуальные методы класса c++. Ключевое слово virtual. Ключевое слово override. ООП. C++ #103

Понравилось видео или оказалось полезным? Подпишись! Если вам нравятся мои уроки, вы хотите поддержать меня и ...

Полиморфизм | виртуальные методы c# | virtual override c# | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 75

В этом уроки мы на простом примере рассмотрим что такое полиморфизм в ООП, для чего он нужен и как его использовать ...

Собеседование .NET 2021. Каверзные вопросы: Виртуальные методы, статические конструкторы и поля

Разбираем вопросы которые задают на собеседованиях. В данном цикле будут разобраны 10 вопросов, собранных в 8-ми ...

ООП С++ с нуля: урок 8 - перегрузка методов, виртуальные функции, override

Перегрузка методов класса, виртуальные функции в классах, ключевое слово override.