Основы программирования на C++, PASCAL
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Навигация
ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ
ГЛАВА 2. ВВЕДЕНИЕ В ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ГЛАВА 3. ПРОГРАММИРОВАНИЕ НА ПАСКАЛЕ
ГЛАВА 4. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ++
ГЛАВА 5. МЕТОДЫ ПОСТРОЕНИЯ АЛГОРИТМОВ
Реклама :
Мебельная поисковая система: стеклянные тв тумбы. Нужна тумба под телевизор? . Аспекты шибари - тексты, описания, материалы, фотогалереи, обмен опытом.
За счет такого механизма и удается правильно установить все нужные связи для виртуальных методов. Результат позднего связывания в этом случае зависит от типа того объекта, чей метод обратился к виртуальному методу. Конструктор для подготовки позднего связывания устанавливает связь между экземпляром объекта и таблицей виртуальных методов (VMT) объекта. Для каждого виртуального метода VMT содержит его адрес. Вызов виртуального метода делается не прямо, а через VMT: сначала по имени метода определяется его адрес, а затем по этому адресу передается управление. Именно по этим причинам использованию виртуальных методов должен предшествовать вызов конструктора.
Чтобы разместить объект в динамической памяти, надо описать указатель на него. Выделение памяти для динамического объекта выполняется процедурой NEW. Поскольку сразу после этого производится инициализация объекта, то для объектов процедура NEW выглядит так:
NEW(<yказатель на объект>, <конструктор>)
Высвобождение динамической памяти, занятой объектом, выполняется процедурой DISPOSE. Перед этим выполняются действия, завершающие работу с объектом, поэтому для объектов процедура DISPOSE выглядит так:
DISPOSE (<указатель на объект>, <деструктор>)
Нельзя освободить память, занятую динамическим объектом, если у него нет деструктора, хотя бы и пустого.
Пример 6. Сложное меню в динамической памяти. Построим сложное иерархическое меню: пробел будет открывать главное меню, нажатие на клавишу Enter будет разворачивать подсвеченный пункт в меню или, если пункт находится в подменю, клавиша Enter будет сворачивать подменю. Работа будет завершаться по нажатию на клавишу Esc. Нижний уровень меню располагаем вертикально, главное меню — горизонтально. (В роли пунктов главного меню будут выступать некоторые классы языков программирования, а в качестве подпунктов — примеры таких языков.)






При исполнении этой программы появляется пустой экран. После нажатия на клавишу пробел на экране появится строка из трех пунктов главного меню:

Желтым цветом выделен первый пункт меню. Если нажать на клавишу Enter, то появится вертикальное подменю:

с выделенным цветом первым пунктом. Смена выбранного пункта (продвижение по пунктам) производится при помощи клавиши пробел. Нажатием на клавишу Enter закрывается подменю. Выход из программы выполняется при помощи клавиши Esc.

