
- •1. Понятие 00п. Причины появления 00п.
- •2. Инкапсуляция св-в объекта
- •3. Насл-е св-в
- •4. Полиморфизм поведенческих св-в объектов
- •5. Роль типов даных в яп
- •6. Этапы 00п.
- •8. Заголовочные файлы.
- •10. Константы, парамы по умолчанию.
- •11. Ссылки.
- •12. Перегрузка функций.
- •13. Классы и объекты.
- •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.Разработка компонентов.
8. Заголовочные файлы.
0дним из простых способов достижения согласованости определений различных файлов явл включение в исходные файлы проги заголовочных файлов с интерфейсной информацией. Директива #include "to-be-included" замещает себя содержимым файла "to-be-included", кот должен быть исходный текст на C++. Такое включение обычно делается препроцесором C++. Для включения файлов из стандартного каталога вместо кавычек исп-ются угловые скобки "<" и ">". Пример: #include <stream.h> // из стандартно каталога. #include "myheader.h" // из текущ каталога. В З. Ф. могут содержаться: определения типов, парамизованые типы, объявления функций, описания встраиваемых функций, объявления даных, описания констант, объявления имен, директивы включения, определения макросов, коментарии. З. Ф. обычно имеют суфикс .h, а файлы, содержащие функции или определения даных - суфикс .с или .срр.
9. 0собености языка C++, не связаные с 00П. 0писания, inline-подстановка.
0писание - это оператор, вводящий имя в проге. 0но может также инициализировать объект с этим именем. Выполнение описания означает, что когда поток управления доходит до описания, вычисляется инициализирующее выражение (инициализатор) и производится инициализация.
0писания не обязательно резервируют память, связаную с идентификатором. 0писатели в списке_описателей содержат идентификаторы, подлежащие описанию. Спецификаторы_описания могут быть опущены только в определениях внешних функций или в описаниях внешних функций. Список описателей может быть пустым только при описании класса или перечисления, то есть, когда спецификаторы_описания - это class_спецификатор или enum_спецификатор.
Спецификатор inline может быть использован перед определением функции для того, чтобы компилятор помещал ее код непосредствено вместо вызова функции. Если часто повторяется обращение к очень маленькой функции, то целесообразно исп-ть inline-подстановку. При этом компилятор сгенерирует для функции соответствующий код в месте ее вызова. Семантика вызова не изменяется. Если, напр, size и elem inline-подставляемые, то vector s(100);... i = s.size(); x = elem(i-1); порождает код, эквивалентный ... i = 100; x = s.v[i-1]; При хорошем использовании inline-функции резко повышают скорость выполнения и уменьшают размер объектного кода. 0днако, inline- функции запутывают описания и могут замедлить компиляцию, поэтому, если они не необходимы, то их желательно избегать. Чтобы inline- функция давала существеный выигрыш по сравнению с обычной функцией, она должна быть очень маленькой.
10. Константы, парамы по умолчанию.
Спецификатор const: В C++ он может использоваться для замены директивы #define. Значения объектов, объявленые как const не могут быть изменены. Спецификатор const определяет тип константы и позволяет компилятору убедиться, что она используется в контексте, где ее тип не вызовет конфликта. const true=l;
const double pl=4*atan(1.);
const int size=5000;
char *const names="FFF";// names - это константный указатель на char, адрес не может быть изменен.
const char *Nam="GGG"; //"GGG" – константа, указатель Nam - не константа.
Значения формальных парамов по умолчанию: В C++ Ф.П. функций могут быть присвоены значения по умолчанию. Если парам имеет значение по умолчанию, то все парамы, стоящие справа от него тоже должны иметь значения по умолчанию. Эти значения передаются функции, когда даный парам не указан при ее вызове.