Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 57стр.doc
Скачиваний:
54
Добавлен:
15.06.2014
Размер:
478.21 Кб
Скачать

Вопрос 58. Отношения между объектами. Связи. Агрегация.

Отношения м/у 2-я объектами основаны на предположении, кот один ожидает от другого, а именно операции, которые можно выполнять

Типы отношений м/у объектами:

  • связи – отношения старшинства

  • агрегация – потомственные отношения

Связь – физические или концептуальные соединения между объектами

Связь - это специфическое сопоставление, ч/з к-ое клиент запрашивает услугу у объекта-сервера или ч/з к-ое один объект находит путь к другому.

  • актёр– О воздействует на другие О, но сам не подвергается их воздействию

  • сервер – О только подвергаться воздействию др. О, но сам не выступает в роли воздействующего

  • агент – О совмещает функции актёра и сервера

Агрегация- описывает отношения целого и части, приводящие к соответствующей иерархии объектов, причем, идя от целого (агрегата), мы можем придти к его частям (атрибутам). В этом смысле агрегация - специализированный частный случай ассоциации.

Агрегация может означать физическое вхождение одного объекта в другой, но не обязательно. Агрегация позволяет скрыть части в целом.

Вопрос 59. Природа классов. Отношения между классами. Типы отношений.

Класс – некоторая группа, вид или множество объектов, имеющих общую структуру, cв-ва и поведение, различающиеся по кач-ву, возм-тям. Любой конкретный объект является экземпляром класса.

Интерфейс класса– определяет операции, к-ые могут отн-ся к одному из 3-х типов

  1. public – открытый, видимый для всех клиентов

  2. protected – закрытый, виден классу-наследнику и друзьям

  3. private – закрытый, видимый классу и друзьям

Отношения между классами:

  1. наследование (является) – is a

  2. агрегация (один объект является частью другого) - part of

  3. ассоциации ассоциация – смысловая связь м/у классами

  4. наследование – отношение м/у классами, когда один класс повторяет структуру и поведение другого класса (одиночное наследование) или других классов (множественное наследование)

Мощность ассоциации (кол во участников)

  1. Один ко многим

  2. Многие ко многим

1) Ссылки и ссылочные параметры.

2) Перегрузка функций.

3) Шаблоны функций.

4) Использование спецификатора const с указателями.

5) Область действия класса. Управление доступом к членам класса. Отделение интерфейса от реализации.

6) Понятие конструктора. Использование конструктора с аргументами по умолчанию. Конструктор по умолчанию.

7) Понятие деструктора. Когда вызываются конструкторы и деструкторы.

8) Константные объекты и функции-члены.

9) Дружественные функции и дружественные классы.

10) Использование указателя this.

11) Операции new и delete.

12) Статические члены класса.

13) Понятие перегрузки операций.

14) Функции-операции как члены класса и как дружественные функции.

15) Перегрузка операций ввода-вывода в поток, бинарных и унарных операций.

16) Перегрузка ++ и -.

17) Перегрузка операций индексации массива.

18) Понятие наследования. Механизм ограничения доступа при наследовании.

19) Приведение типа указателя базового класса к указателю производного класса и наоборот.

20) Переопределение членов базового класса в производном классе.

21) Конструкторы и деструкторы в производных классах.

22) Неявное преобразование объектов производных классов в объекты базового класса.

23) Иерархия классов. Уровни наследования.

24) Множественное наследование.

25) Неопределенность при множественном наследовании. Включение: классы в классах.

26) Понятие виртуальной функции.

27) Понятие полиморфизма (примеры).

28) Абстрактные и конкретные базовые классы.

29) Статическое и динамическое связывание.

30) Виртуальные деструкторы.

31) Шаблоны классов.

32) Шаблоны классов и пользовательские типы.

33) Шаблоны классов и наследование.

34) Классы и объекты потоков ввода/вывода. Иерархия потоковых классов.

35) Предопределенные потоковые объекты. Состояния ошибок потока.

36) Манипуляторы потоков.

37) Неформатированный ввод-вывод с использованием read, write.

38) Состояния ошибок потока.

39) Понятие исключения. Когда должна использоваться обработка исключений.

40) Генерация исключений. Повторная генерация исключений.

41) Перехватывание исключений.

42) Спецификация исключений. Обработка неожидаемых исключений.

43) «Раскручивание» стека. Иерархия исключений стандартной библиотеки.

44) Конструкторы, деструкторы и обработка исключений. Исключения и наследование.

45) Обработка неуспешного выполнения new.

46) Класс auto__ptr и динамическое выделение памяти.

47) Файловый ввод/вывод объектов. Использование функции typeid().

48) Операторы приведения типов staticcast, reinterpret cast.

49) Информация о типе времени выполнения (RTT1). Оператор dynamiccast.

50) Ключевое слово explicit.

51) Ключевое слово mutable.

52) Указатели на члены класса.

53) Множественное наследование и виртуальные базовые классы.

54) Классы-контейнеры и классы-итераторы.

55) Понятие ООП. Три условия ООП-программы. Парадигмы ООП (инкапсуляция, наследование, полиморфизм).

56) Основные составляющие объектного подхода: абстрагирование, инкапсуляция, модульность.

57) Основные составляющие объектного подхода: иерархия, типизация, полиморфизм.

58) Природа объекта. Состояние, поведение, идентичность объекта.

59) Отношения между объектами. Связи. Агрегация.

60) Природа классов. Отношения между классами. Типы отношени