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

наследвание - C++

Восстановить пароль Регистрация
 
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
22.10.2013, 00:29     наследвание #1
//класс B наследует класс A - НАСЛЕДОВАНИЕ!
C++
1
2
3
4
5
class A
{...}
 
class B :public B
{...}
//класс B имеет класс A - это считается как НАСЛЕДОВАНИЕ???
C++
1
2
3
4
5
6
7
8
class A
{...}
 
class B
{
...
A object;
}
спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.10.2013, 00:34     наследвание #2
slipp1, Насколько я понимаю, только первый случай наследование. Когда от класса создается потомок со свойствами предка
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
22.10.2013, 00:46  [ТС]     наследвание #3
как связать точка -> линия -> фигура в иерархии наследовая
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
22.10.2013, 00:52     наследвание #4
1ый - наследование.
2ой -композиция.

Цитата Сообщение от slipp1 Посмотреть сообщение
как связать точка -> линия -> фигура в иерархии наследовая
По хорошему никак. Это будет нарушение принципа подстановки Лисков.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
22.10.2013, 00:57  [ТС]     наследвание #5
Цитата Сообщение от ct0r Посмотреть сообщение
1ый - наследование.
2ой -композиция.
линия наследуется от точки?
фигура имеет линию?
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
22.10.2013, 01:02     наследвание #6
Цитата Сообщение от slipp1 Посмотреть сообщение
линия наследуется от точки?
фигура имеет линию?
Я не вижу тут иерархии наследования. Вижу только композицию.
Фигура состоит из отрезков. А отрезок определяется двумя точками.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.10.2013, 01:04     наследвание #7
slipp1, наследование это как пример, класс самолет с размерами крыльев и цветом корпуса, а его потомки это военный самолет с теми же параметрами + параметром количества бомб и порядковым номером.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
22.10.2013, 01:06  [ТС]     наследвание #8
вот и я про то

Добавлено через 47 секунд
делать все через агрегацию...?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.10.2013, 01:08     наследвание #9
slipp1, я не понял вашей проблемы?) Вы же поняли, что такое наследование?
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
22.10.2013, 01:10     наследвание #10
Цитата Сообщение от slipp1 Посмотреть сообщение
делать все через агрегацию...?
Ага.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
22.10.2013, 01:20  [ТС]     наследвание #11
Цитата Сообщение от Folko Посмотреть сообщение
Вы же поняли, что такое наследование?
да.

Добавлено через 18 секунд
агрегация и композиция?? в чем разница??
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
22.10.2013, 01:26     наследвание #12
Цитата Сообщение от slipp1 Посмотреть сообщение
агрегация и композиция?? разница есть??
Небольшая. В случае агрегации контейнер и вложенный в него объект существуют независимо. В случае композиции вложенный объект не может существовать без контейнера (то есть как только уничтожается контейнер, так сразу уничтожается и вложенный объект).
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,573
Записей в блоге: 17
22.10.2013, 01:33     наследвание #13
C++
1
2
3
4
5
6
7
8
class A
{...}
 
class B
{
...
A object;
}
-Не наследование

И логичнее через указатель - дает больше гибкости :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class BasePoint
{...}
 
class Point2D: public BasePoint
{...} 
 
class Point3D: public BasePoint
{...} 
 
class Line
{
...
BasePoint * object; //  Указатель  на базовый класс 
}
Yandex
Объявления
22.10.2013, 01:33     наследвание
Ответ Создать тему
Опции темы

Текущее время: 14:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru