БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
||||||
1 | ||||||
Наследование конструкторов12.06.2012, 15:24. Показов 5776. Ответов 11
Метки нет Все метки)
(
Здравствуйте! У меня такой вопрос: Как сделать так, чтобы при создании объекта дочернего класса не вызывался конструктор родительского? При таком коде вызывается и тот, и тот конструкторы:
0
|
|
12.06.2012, 15:24 | |
Ответы с готовыми решениями:
11
Наследование конструкторов
Наследование конструкторов? |
![]() 1672 / 1044 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||||||
12.06.2012, 16:00 | 3 | |||||
Конструкторов предка можно сделать несколько разных и при создании потомка вызывать нужный.
1
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|||||||||||
13.06.2012, 07:03 [ТС] | 4 | ||||||||||
А что означают вот эти записи?
![]() В учебнике написано, что если ты не создаешь конструктор в потомке, то будет вызван родительский конструктор, после чего все переменные потомка обнулятся. Но что если я написал свой конструктор для потомка? Выходит, в этом случае родительский конструктор тоже вызывается? ![]()
0
|
В астрале
![]() 8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
13.06.2012, 13:14 | 5 |
Hagrael, Вызывается очевидно. Читайте про список инициализации.
0
|
Каратель
![]() |
|
13.06.2012, 14:52 | 6 |
Конструктор родителя всегда будет вызван
Конструктор будет вызван только для не POD типов Конечно вызывается, например автомобиль является транспортным средством, создавая объект автомобиля создается и транспортное средство. По твоей логике выходит так: создается объект автомобиля который является транспортным средством но при этом само транспортное средство не создается - где логика?
1
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
15.06.2012, 07:26 [ТС] | 7 |
Jupiter, да, понимаю, это логично. Но если я хочу полностью переписать конструктор предка, т. е. сделать так, чтобы конструктор работал совершенно по-другому. Но ведь тогда вызов предыдущего конструктора будет бессмыслен. Его вызов, значит, отменить никак нельзя?
0
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
15.06.2012, 08:11 [ТС] | 9 |
soon, понятно, значит, на практике это никогда не нужно. Всем спасибо, все понял!
![]()
0
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
15.06.2012, 11:44 | 10 |
Ну так напиши у предка два конструктора:
1) Обычный 2) Специально для того случая когда ты при наследовании надумаешь его вызвать. Не вижу проблемы, ты ведь при наследовании сам решаешь какой конструктор предка вызывать.
1
|
![]() 5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
|
|
15.06.2012, 16:30 | 11 |
Hagrael, если у вас появилась необходимость в этом - значит плоха архитектура. Если наследовать круг от квадрата, возможно, и появится необходимость полностью переписывать логику инициализации. Однако такое наследование бред.
1
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
16.06.2012, 15:35 [ТС] | 12 |
Понятно!
0
|
16.06.2012, 15:35 | |
Помогаю со студенческими работами здесь
12
Наследование конструкторов Наследование конструкторов Наследование конструкторов и диструкторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |