Основы программирования — второй семестр 08-09; Михалкович С.С.; II часть — различия между версиями
Admin (обсуждение | вклад) (→Указатели) |
Admin (обсуждение | вклад) |
||
Строка 27: | Строка 27: | ||
Вызов конструктора и выделение динамической памяти. | Вызов конструктора и выделение динамической памяти. | ||
+ | |||
+ | Шаблоны классов. | ||
Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java). | Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java). | ||
Строка 32: | Строка 34: | ||
Управляемая динамическая память и ее возврат. Отсутствие утечки памяти. | Управляемая динамическая память и ее возврат. Отсутствие утечки памяти. | ||
− | + | ===Динамические структуры данных=== | |
+ | Списки | ||
+ | |||
+ | Односвязные линейные списки. Класс узла списка (шаблонный) | ||
+ | |||
+ | Стандартные операции с односвязными линейными списками | ||
+ | * Вставка элемента в начало | ||
+ | * Удаление элемента из начала | ||
+ | * Вставка после текущего | ||
+ | * Удаление после текущего | ||
+ | * Проход по списку | ||
+ | |||
+ | Двусвязные линейные списки. | ||
+ | |||
+ | Стандартные операции с двусвязными линейными списками | ||
+ | * Инициализация | ||
+ | * Добавление в начало, конец | ||
+ | * Удаление из начала, конца | ||
+ | * Вставка элемента перед текущим, после текущего | ||
+ | * Удаление текущего | ||
+ | * Объединение двух списков | ||
+ | |||
+ | Помещение операций по работе со списком внутрь класса |
Версия 21:43, 21 февраля 2009
Лекция 3
Указатели
Адрес. Переменная-указатель.
Для чего нужны указатели?
Типизированные и бестиповые указатели.
Нулевой указатель.
Операция разыменования.
Указатели и явное приведение типа. Пример: типы pointer, pinteger и preal. Доступ к памяти, имеющей другое внутреннее представление.
Динамическая память. Явное выделение динамической памяти. Процедуры New и Dispose.
Ошибки при работе с динамической памятью
- Использование неинициализированного указателя
- Висячие указатели
- Утечка памяти
Классы-начало
Переменная типа класс как ссылка. Сравнение с записями.
Вызов конструктора и выделение динамической памяти.
Шаблоны классов.
Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java).
Управляемая динамическая память и ее возврат. Отсутствие утечки памяти.
Динамические структуры данных
Списки
Односвязные линейные списки. Класс узла списка (шаблонный)
Стандартные операции с односвязными линейными списками
- Вставка элемента в начало
- Удаление элемента из начала
- Вставка после текущего
- Удаление после текущего
- Проход по списку
Двусвязные линейные списки.
Стандартные операции с двусвязными линейными списками
- Инициализация
- Добавление в начало, конец
- Удаление из начала, конца
- Вставка элемента перед текущим, после текущего
- Удаление текущего
- Объединение двух списков
Помещение операций по работе со списком внутрь класса