![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Larrr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 29.1.2006 Где: Прага Репутация: нет Всего: 2 |
Привет! Разбираюсь тут с ООП в С++. Попробовала написать такой пример:
На выходе имеем: I'm A constructor I'm A constructor Посему вопроса 2: 1) Почему, когда В унаследовался от А приватно, конструктор В (изначалько конструктор предка А) не сделался приватным? 2) В каких случаях потомок наследует, а в каких не наследует конструктор родителя? Спасибо! ![]() |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Конструктор не наследуется.
Добавлено через 39 секунд Конструктор не наследуется. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
andrew_121 |
|
||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
с чего вы взяли? ;)
ответьте на первый вопрос, и в этом вопросе надобность пропадет. -------------------- Удалил аккаунт. Прощайте! |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
конструкторы не наследуются
если нет явного вызова конструктора предка, вызывается конструктор по умолчанию. |
|||
|
||||
Larrr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 29.1.2006 Где: Прага Репутация: нет Всего: 2 |
andrew_121 :
1) Потому, что я пребываю в уверенности (возможно, необоснованной), что нельзя создать объект, у которого есть только приватный конструктор. По результату вызова В b; видно, что вызвался конструктор родителя, который, по идее, должен бы быть приватным. Почему вызывается приватный конструктор? Я бы еще поняла, если бы вызвался конструктор по умолчанию... 2) Не пропала. mes: Мой пример показывается, что при создании В вызывается конструктор А. Те. наследуется конструктор родителя. Это сообщение отредактировал(а) Larrr - 16.1.2010, 21:31 |
|||
|
||||
saneea |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Larrr, приватное наследование моделирует отношение "использует" (или "реализуется при помощи"), а открытое наследование моделирует отношение "является разновидностью". То есть: класс B использует класс A как "вспомогательный" механизм. При этом в функциях-членах класса B можно использовать ОТКРЫТЫЕ функции-члены и данные. Другими словами, вы могли бы написать код так:
И призошло бы то же самое, хоть A_m определено в приватной секции!
Любой конструктор не принимающий параметров называется "конструктор по умолчанию" (независимо от того, вы его написали, или его сгенерировал компилятор). |
||||
|
|||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |