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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

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

22.10.2013, 00:29. Просмотров 373. Ответов 12
Метки нет (Все метки)

//класс 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;
}
спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.10.2013, 00:34 #2
slipp1, Насколько я понимаю, только первый случай наследование. Когда от класса создается потомок со свойствами предка
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
22.10.2013, 00:46  [ТС] #3
как связать точка -> линия -> фигура в иерархии наследовая
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
22.10.2013, 00:52 #4
1ый - наследование.
2ой -композиция.

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

Добавлено через 47 секунд
делать все через агрегацию...?
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.10.2013, 01:08 #9
slipp1, я не понял вашей проблемы?) Вы же поняли, что такое наследование?
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
22.10.2013, 01:10 #10
Цитата Сообщение от slipp1 Посмотреть сообщение
делать все через агрегацию...?
Ага.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
22.10.2013, 01:20  [ТС] #11
Цитата Сообщение от Folko Посмотреть сообщение
Вы же поняли, что такое наследование?
да.

Добавлено через 18 секунд
агрегация и композиция?? в чем разница??
0
ct0r
Игогошка!
1776 / 678 / 42
Регистрация: 19.08.2012
Сообщений: 1,292
Завершенные тесты: 1
22.10.2013, 01:26 #12
Цитата Сообщение от slipp1 Посмотреть сообщение
агрегация и композиция?? разница есть??
Небольшая. В случае агрегации контейнер и вложенный в него объект существуют независимо. В случае композиции вложенный объект не может существовать без контейнера (то есть как только уничтожается контейнер, так сразу уничтожается и вложенный объект).
1
Avazart
Нарушитель
Эксперт С++
7233 / 5405 / 294
Регистрация: 10.12.2010
Сообщений: 23,956
Записей в блоге: 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; //  Указатель  на базовый класс 
}
1
22.10.2013, 01:33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru