Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
#1

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

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

Вопрос озвучен .
Желательно, с разжёваным ответом. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 19:10
Ответы с готовыми решениями:

В каких из приведенных ниже ситуаций может быть вызван конструктор копирования класса String:
1. String spaces(size_t n) { const String s(n, ' '); return s; }...

Почему не может быть такой функции?
ofstream input_file(str1) ; такой строкой кода я открываю файл. ofstream -...

Может ли быть метод virtual static? И почему?
Очень нужно объяснение! В интернете ничего конкретно про это не написано.

Почему конструктор и "оператор =" не могут быть виртуальными?
Добрый вечер, какое аргументированое объяснение: "почему конструктор и...

Почему при вызове деструктора класс как бы существует?
Создал класс,создал объект,в нем поля имеющие значения,вызвал...

2
Croessmah
++Ͻ
14487 / 8268 / 1553
Регистрация: 27.09.2012
Сообщений: 20,312
Записей в блоге: 3
Завершенные тесты: 1
27.02.2013, 19:26 #2
Как Вы себе представляете работу виртуального конструктора? Для чего он может понадобиться? При создании объекта Вы точно указываете какой объект создаете, тогда как при уничтожении объекта, через указатель на базовый класс, не известно что это за объект, поэтому деструктор должен быть виртуальным, для вызова правильного деструктора.
То есть при создании - мы сами указываем какой конструктор какого класса вызывать и никакая виртуальность тут не нужна.
1
ITcrusader
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
27.02.2013, 21:33 #3
В довесок, если собирешься гуглить на предмет виртуального конструктора, наткнешься на реализацию такового, например на хабре (как ни странно). Там абракадабру, реализованную с помощью концепции конверт/письмо, называют виртуальным конструктором, абсолютно, блин, беспочвенно. На практике - это лишь конструктор, перегружающий сам себя по значению какого-то аргумента (там - значение enum'а). Но сама техника реализации интересной может показаться)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 21:33

Почему переобределяемый метод должен быть или виртуальным или абстрактным?
Почему что-бы переопределить метод в классе наследнике, в классе родителе...

Почему может не быть индекса?
Есть серверная база. Есть пользователь с правами Эдитора. Для базы создан...

Память не может быть Read, Почему так ???
Привет всем! MyClass::MyClass(TWinControl* mOwner) { RefreshBtn = new...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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