- •1. Понятие 00п. Причины появления 00п.
- •2. Инкапсуляция св-в объекта
- •3. Насл-е св-в
- •4. Полиморфизм поведенческих св-в объектов
- •5. Роль типов даных в яп
- •6. Этапы 00п.
- •8. Заголовочные файлы.
- •10. Константы, парамы по умолчанию.
- •12. Перегрузка функций.
- •13. Классы и объекты.
- •11. Ссылки.
- •14. Члены класса.
- •15. 0Писание класов.
- •16. Конст-ры, деструкторы.
- •17. Конст-р копирования, Конст-р присваивания.
- •18. Друзья класса.
- •19. 0Бъекты с автоматически распределяемой памятью.
- •20. 0Бъекты с динамически распределяемой памятью
- •21. Производные классы: одиночное насл-е.
- •22. Модификаторы доступа.
- •23. Переопределение функций в производном класе. Вирт-ые функции.
- •24. 0Ператор разрешения контекста.
- •25. Приведение типов объектов.
- •26. Абстр-ые классы. Чисто вирт-ые функции.
- •27. Множвеное насл-е. Сравнение множвеного насл-я с одиночным.
- •28. "Правильное" множвеное насл-е. Понятие интерфейса.
- •29. Парамизованые классы.
- •30. Парамизованые функции.
- •31. Перегрузка операций. Перегрузка унарных операторов.
- •32. Перегрузка операций. Перегрузка бинарных операторов.
- •33. Исключения и их обработка.
- •34. 0Бщая характеристика стандартной библиотеки шаблонов.
- •35. Ввод-вывод с исп-нием потоков stl.
- •46. Классы Control, ScrollableControl, ContainerControl.
- •47. Классы WinForms Application, Screen.
- •48. Классы-контейнеры List, ArrayList.
- •49. Классы Pen, Brush, Font, Graphics.
- •50. Класс Form.
- •51. Классы WinForms для реализации кнопок.
- •52. Классы WinForms для реализации строк редактирования.
- •53. Классы WinForms для реализации списков и выпадающих списков.
- •54. Классы WinForms для реализации меню и инструментальных панелей
- •55. Классы WinForms для реализации контейнеров управляющих элементов.
- •56. Методика работы с диалоговыми окнами.
- •57. Сериализация, десериализация.
- •58.Разработка компонентов.
3. Насл-е св-в
Насл-е - св-во класов порождать своих потомков и наследовать св-ва (атрибуты и операции) своих родителей. Класс-потомок автоматически наследует от родителя все атрибуты и операции, а также может вводить новые атрибуты и операции и даже заменять (переопределять) операции родительского класса. Насл-е в 00П позволяет адекватно отражать родственые отношения между объектами предметной области. Если класс В обладает всеми св-вами класса А и еще имеет дополнительные св-ва, то класс А назется базовым (предком), а класс В – подкласом (наследником) класса А. Насл-е св-в только одного баз класса назется одиночным (простым), а паралёльное насл-е св-в сразу нескольких- базовых класов - множвеным (кратным). В С++ возможны оба варианта насл-я класов. Механизм насл-я упрощает процес построения иер-и класов, что сокращает затраты на написание новых класов на основе существующих и обеспечивает исключительную гибкость сисмы класов. Прог-ист обычно определяет баз класс, обладающий наиболее общими св-вами, а затем создает последовательность потомков, кот обладают специфическими св-вами. В рез-те получается иер-я насл-я св-в класов. Базовые классы часто обладают такими абстр-ыми св-вами, что сами в прогах не исп-ются (напр, класс фигура), они необходимы лишь для порождения требуемых класов. Правильный выбор корня обеспечивает простоту построения библиотеки класов. Пример иер-и класов: фигура-> точка-> круг-> цилиндр.
4. Полиморфизм поведенческих св-в объектов
Св-во какого-либо имени проги одновремено обозначать различные сущности назется полиморфизмом этого имени. Это слово означает “много форм”. Понятие полиморфизма в ЯП - одно из основополагающих, и необязательно связывать его только с именами. Правомерно говорить о полиморфных знаках операций — встроеных и/или определяемых. К примеру, в опёрации “а + b” в зависимости от типов а и b знак операция «+» может обозначать операцию сложения целых, вещественых, объединения множв или сцепления строк (можно считать, что: ИХ ИМЯ знак “+“). Полиморфизм проявл и в связи с локализацией имен: одно и то же имя из разных контекстов обозначает разные сущности, а неоднозначность понимания имени ликвидируется языковыми правилами соотнесения имени с контекстом. Полиморфны эл-ты интерфейса програм — как технические (к примеру, клавиша мыши в зависимости от позиции ее курсора имеет разный смысл), так и програмируемые (в частности, одинаковые световые кнопки на разных панелях обозначают различные действия). Если в определении полиморфизма отказаться от одновремености, то можно считать полиморфным понятие переменой, т. к. в разные моменты выполнения проги она содержит (обозначает) различные значения. Пользуясь понятием полиморфизма, всегда нужно четко представлять механизмы, благодаря кот разрешается неоднозначность связывания имени или иного обозначения с обозначаемыми сущностями. Полиморфизм переменой разрешается временем обращения к ней, полиморфизм знака операции или имени процедуры — типами парамов, контекстный полиморфизм имен при локализации — правилами экранирования имен. 00ые языки наряду с традициоными видами полиморфизма предлагают принципиально новые, возможности такого рода. В них полиморфизм часто также определяют, как способность объектов-родствеников по-разному осуществлять однотипные действия, т.е. однотипные действия у множва класов, связаных отношением иер-й, имеют разные формы проявления. С понятием полиморфизма связана проблема времени связывания имени операции с ее телом. Если можно определить на этапе компиляции проги, какая операция с даным именем вызывается в даной точке проги, то имеет место ранее, или статическое связывание. Если же можно сопоставить имени операции конкрётную операцию только на этапе выполнения проги, то имеет место позднее, или динамическое, связывание. Напр, если мы имеем масив фигур и в цикле по этому масиву вызываем метод «нарисовать на Экране», то только в процесе выполнения проги может быть установлено, какая имено фигура явл даным эл-том масива и какой метод ее рисования должен быть применен. Позднее связывание имен операций с их телами явл одним из существеных св-в 00П.
