Основы программирования — второй семестр 08-09; Михалкович С.С.; II часть — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Указатели)
Строка 27: Строка 27:
  
 
Вызов конструктора и выделение динамической памяти.
 
Вызов конструктора и выделение динамической памяти.
 +
 +
Шаблоны классов.
  
 
Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java).
 
Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java).
Строка 32: Строка 34:
 
Управляемая динамическая память и ее возврат. Отсутствие утечки памяти.  
 
Управляемая динамическая память и ее возврат. Отсутствие утечки памяти.  
  
Невозможность сочетания обычной управляемой динамической памяти.w
+
===Динамические структуры данных===
 +
Списки
 +
 
 +
Односвязные линейные списки. Класс узла списка (шаблонный)
 +
 
 +
Стандартные операции с односвязными линейными списками
 +
* Вставка элемента в начало
 +
* Удаление элемента из начала
 +
* Вставка после текущего
 +
* Удаление после текущего
 +
* Проход по списку
 +
 
 +
Двусвязные линейные списки.
 +
 
 +
Стандартные операции с двусвязными линейными списками
 +
* Инициализация
 +
* Добавление в начало, конец
 +
* Удаление из начала, конца
 +
* Вставка элемента перед текущим, после текущего
 +
* Удаление текущего
 +
* Объединение двух списков
 +
 
 +
Помещение операций по работе со списком внутрь класса

Версия 21:43, 21 февраля 2009

Лекция 3

Указатели

Адрес. Переменная-указатель.

Для чего нужны указатели?

Типизированные и бестиповые указатели.

Нулевой указатель.

Операция разыменования.

Указатели и явное приведение типа. Пример: типы pointer, pinteger и preal. Доступ к памяти, имеющей другое внутреннее представление.

Динамическая память. Явное выделение динамической памяти. Процедуры New и Dispose.

Ошибки при работе с динамической памятью

  • Использование неинициализированного указателя
  • Висячие указатели
  • Утечка памяти

Классы-начало

Переменная типа класс как ссылка. Сравнение с записями.

Вызов конструктора и выделение динамической памяти.

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

Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java).

Управляемая динамическая память и ее возврат. Отсутствие утечки памяти.

Динамические структуры данных

Списки

Односвязные линейные списки. Класс узла списка (шаблонный)

Стандартные операции с односвязными линейными списками

  • Вставка элемента в начало
  • Удаление элемента из начала
  • Вставка после текущего
  • Удаление после текущего
  • Проход по списку

Двусвязные линейные списки.

Стандартные операции с двусвязными линейными списками

  • Инициализация
  • Добавление в начало, конец
  • Удаление из начала, конца
  • Вставка элемента перед текущим, после текущего
  • Удаление текущего
  • Объединение двух списков

Помещение операций по работе со списком внутрь класса