Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про наследование 
:(
    Опции темы
yngwie19
Дата 4.11.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Спасибо всем за объяснения. Значит если мы хотим инициализировать объект производного класса, мы должны передать значения в конструктор базового класса (если производлный класс использует элементы этого базового класса)?
PM MAIL   Вверх
Fazil6
Дата 4.11.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



это 
Цитата(yngwie19 @  4.11.2008,  13:55 Найти цитируемый пост)
Значит если мы хотим инициализировать объект производного класса, мы должны передать значения в конструктор базового класса 

и
Цитата(yngwie19 @  4.11.2008,  13:55 Найти цитируемый пост)
(если производлный класс использует элементы этого базового класса)

никак между собой не связано
PM MAIL   Вверх
yngwie19
Дата 4.11.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Я имею в виду, что если в базовом классе есть данные элементы как например x и y, то производный класс используя эти элементы для своих объектов должен инициализировать их только через конструктор базового класса. Передовая ему значения следующим образом:
Код

PredClass(int a, int b) : BasicClass(a, b)
{;}


Это так?
PM MAIL   Вверх
Fazil6
Дата 4.11.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(yngwie19 @  4.11.2008,  14:25 Найти цитируемый пост)
Это так? 

так, но 
Цитата(yngwie19 @  4.11.2008,  14:25 Найти цитируемый пост)
производный класс используя эти элементы для своих объектов

производный класс не должен использовать их для своих объектов. 
x и y объекты базового класса. Как, когда и зачем их инициализировать и использовать определяет только базовый класс. 
PM MAIL   Вверх
yngwie19
Дата 4.11.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Fazil6, Я имею ввиду что когда происходит наследование, то в производный класс копируются функции и элементы базового класса. Отсюда слудует что когда создается объект производного класса, то для этого объекта доступны свои this->x и this->y. Это так?
PM MAIL   Вверх
Fazil6
Дата 4.11.2008, 15:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(yngwie19 @  4.11.2008,  14:57 Найти цитируемый пост)
Fazil6, Я имею ввиду что когда происходит наследование, то в производный класс копируются функции и элементы базового класса. Отсюда слудует что когда создается объект производного класса, то для этого объекта доступны свои this->x и this->y. Это так? 

вообще-то нет....
Цитата(Fazil6 @  4.11.2008,  12:19 Найти цитируемый пост)
Почитай про порядок создания объектов и инициализацию их членов. 

PM MAIL   Вверх
yngwie19
Дата 4.11.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Fazil6,  Объясни пожалуйста как тогда, Я уже читал и мне не очень это понятно. Хочу разобраться
PM MAIL   Вверх
Andrey44
Дата 4.11.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Ты знаешь в каком порядке вызываются конструкторы и деструкторы базовых классов и производных от них классов?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Fazil6
Дата 4.11.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(yngwie19 @  4.11.2008,  15:13 Найти цитируемый пост)
Fazil6,  Объясни пожалуйста как тогда, Я уже читал и мне не очень это понятно. Хочу разобраться 

да вобщем-то добавить к тому что пишут в учебниках мне нечего...
в твоем случае при создании объекта класса PredClass создаются объекты родительского класса (x и y), потом объекты класса PredClass (т.е. никаких не создается ибо у него нету никаких) и потом вызываются конструкторы начиная с базового и заканчивая конструктором создаваемого класса. 
private/protected/public определяют какие члены базовых классов доступны из наследников. Вобщем все. Ничего никуда не копируется
PM MAIL   Вверх
yngwie19
Дата 4.11.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



х и у это же не объекты, а данные элементы 
PM MAIL   Вверх
Andrey44
Дата 4.11.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата(yngwie19 @  4.11.2008,  15:37 Найти цитируемый пост)
х и у это же не объекты, а данные элементы  

Ты сам-то хоть понял что написал?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Fazil6
Дата 4.11.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(yngwie19 @  4.11.2008,  15:37 Найти цитируемый пост)
х и у это же не объекты, а данные элементы  

а что такое по твоему "данные элементы" и чем они отличаются от объектов?
PM MAIL   Вверх
yngwie19
Дата 4.11.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Объекты это экземпляры пласса, а x и y это составляющие эленты экземпляра класса
PM MAIL   Вверх
Andrey44
Дата 4.11.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Понятно.
И все-таки в чем сейчас заключается вопрос?
Ты хочешь создавать объект производного класса, но не вызывать конструктор базового?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
yngwie19
Дата 4.11.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Andrey44, нет мне не понятно следующее:
когда мы создаем объект производного класса например из моего примера:
PredClass obj
то когда мы пишем
cout<<obj.x или cout<<obj.y, мы печатаем значения для х и у для obj так? (допустим, что x и y объявлены public)

А если так, то мне не очень понятно, когда происходит наследование, то (x и y) у каждого объекта производного класса свои? т.е и объекты базового класса имеют свои x и y, и объекты производного класса имеют свои x и y . Вот это можешь объяснить?
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1363 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.