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

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

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

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

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

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,231
Записей в блоге: 3
Завершенные тесты: 1
27.02.2013, 19:26 #2
Как Вы себе представляете работу виртуального конструктора? Для чего он может понадобиться? При создании объекта Вы точно указываете какой объект создаете, тогда как при уничтожении объекта, через указатель на базовый класс, не известно что это за объект, поэтому деструктор должен быть виртуальным, для вызова правильного деструктора.
То есть при создании - мы сами указываем какой конструктор какого класса вызывать и никакая виртуальность тут не нужна.
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
27.02.2013, 21:33 #3
В довесок, если собирешься гуглить на предмет виртуального конструктора, наткнешься на реализацию такового, например на хабре (как ни странно). Там абракадабру, реализованную с помощью концепции конверт/письмо, называют виртуальным конструктором, абсолютно, блин, беспочвенно. На практике - это лишь конструктор, перегружающий сам себя по значению какого-то аргумента (там - значение enum'а). Но сама техника реализации интересной может показаться)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 21:33
Привет! Вот еще темы с ответами:

Различие в заголовках EXE. Почему это может быть? - Assembler
Приветствую, уважаемые форумчане! У меня собственно такой вопрос. Имеется ДОСовский экзешник, с которого был сделан реверс исходника...

Почему в Ethernet в сегменте может быть не более 1024 станций? - Сети
Здравствуйте, помогите пожалуйста разобраться с вопросом. Почему в Ethernet в сегменте может быть не более 1024 станций? Все что мне...

Для чего ещё может быть нужен конструктор класса кроме присвоения полям класса начальных значений? - Delphi
Для чего ещё может быть нужен конструктор класса кроме присвоения полям класса начальных значений?

Почему приложение в Google Play может быть не доступно в некоторых странах? - Программирование
Загрузил приложение на Google Play. Но один пользователь отправил мне такую ошибку при загрузке моего приложения:"Sorry,The APP Cannot Be...


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

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

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