![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Спасибо всем за объяснения. Значит если мы хотим инициализировать объект производного класса, мы должны передать значения в конструктор базового класса (если производлный класс использует элементы этого базового класса)?
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
||||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Я имею в виду, что если в базовом классе есть данные элементы как например x и y, то производный класс используя эти элементы для своих объектов должен инициализировать их только через конструктор базового класса. Передовая ему значения следующим образом:
Это так? |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
так, но производный класс не должен использовать их для своих объектов. x и y объекты базового класса. Как, когда и зачем их инициализировать и использовать определяет только базовый класс. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Fazil6, Я имею ввиду что когда происходит наследование, то в производный класс копируются функции и элементы базового класса. Отсюда слудует что когда создается объект производного класса, то для этого объекта доступны свои this->x и this->y. Это так?
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
вообще-то нет.... |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Fazil6, Объясни пожалуйста как тогда, Я уже читал и мне не очень это понятно. Хочу разобраться
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Ты знаешь в каком порядке вызываются конструкторы и деструкторы базовых классов и производных от них классов?
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
да вобщем-то добавить к тому что пишут в учебниках мне нечего... в твоем случае при создании объекта класса PredClass создаются объекты родительского класса (x и y), потом объекты класса PredClass (т.е. никаких не создается ибо у него нету никаких) и потом вызываются конструкторы начиная с базового и заканчивая конструктором создаваемого класса. private/protected/public определяют какие члены базовых классов доступны из наследников. Вобщем все. Ничего никуда не копируется |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
х и у это же не объекты, а данные элементы
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Ты сам-то хоть понял что написал? -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
||||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Объекты это экземпляры пласса, а x и y это составляющие эленты экземпляра класса
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Понятно.
И все-таки в чем сейчас заключается вопрос? Ты хочешь создавать объект производного класса, но не вызывать конструктор базового? -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Andrey44, нет мне не понятно следующее:
когда мы создаем объект производного класса например из моего примера: PredClass obj то когда мы пишем cout<<obj.x или cout<<obj.y, мы печатаем значения для х и у для obj так? (допустим, что x и y объявлены public) А если так, то мне не очень понятно, когда происходит наследование, то (x и y) у каждого объекта производного класса свои? т.е и объекты базового класса имеют свои x и y, и объекты производного класса имеют свои x и y . Вот это можешь объяснить? |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |