Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

Почему конструктор в отличаи от деструктора не может быть виртуальным? - C++

27.02.2013, 19:10. Просмотров 934. Ответов 2
Метки нет (Все метки)

Вопрос озвучен .
Желательно, с разжёваным ответом. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 19:10     Почему конструктор в отличаи от деструктора не может быть виртуальным?
Посмотрите здесь:
C++ В каких из приведенных ниже ситуаций может быть вызван конструктор копирования класса String:
Почему не может быть такой функции? C++
Почему конструктор и "оператор =" не могут быть виртуальными? C++
C++ Не может найти конструктор для иниц поля класса
C++ Почему не работает конструктор?
Почему конструктор не работает? C++
C++ Может ли быть такое?
Почему не вызывается конструктор копии? C++
C++ Не работает конструктор копирования почему-то...
C++ Почему не вызывается конструктор перемещения?
C++ Почему не вызывается конструктор копирования?
C++ В чём может быть ошибка?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
27.02.2013, 19:26     Почему конструктор в отличаи от деструктора не может быть виртуальным? #2
Как Вы себе представляете работу виртуального конструктора? Для чего он может понадобиться? При создании объекта Вы точно указываете какой объект создаете, тогда как при уничтожении объекта, через указатель на базовый класс, не известно что это за объект, поэтому деструктор должен быть виртуальным, для вызова правильного деструктора.
То есть при создании - мы сами указываем какой конструктор какого класса вызывать и никакая виртуальность тут не нужна.
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
27.02.2013, 21:33     Почему конструктор в отличаи от деструктора не может быть виртуальным? #3
В довесок, если собирешься гуглить на предмет виртуального конструктора, наткнешься на реализацию такового, например на хабре (как ни странно). Там абракадабру, реализованную с помощью концепции конверт/письмо, называют виртуальным конструктором, абсолютно, блин, беспочвенно. На практике - это лишь конструктор, перегружающий сам себя по значению какого-то аргумента (там - значение enum'а). Но сама техника реализации интересной может показаться)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru