Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по программ(мои).doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
969.73 Кб
Скачать

2.Примеры абстрактных структур: таблицы.

Абстракция данных – это методика программирования, предполагающая разделение интерфейса и реализации. Абстрактные структуры данных предназначены для удобного хранения и доступа к информации.

Из всех универсальных невстроенных типов самым полезным является ассоциативный массив. Его часто называют таблицей, и он хранит пары значений. Имея одно из значений, называемое ключом, можно получить доступ к другому, называемому просто значением. Ассоциативный массив можно представлять как массив, в котором индекс не обязан быть целым.

3.Понятие проекта программы: структура проекта.

Проект – это совокупность исходных файлов, распределенных каким-то образом по подкаталогам проекта. Проект может содержать один или более проектных файлов для построения исходных текстов, что может считаться целью проекта.

Проект может вообще не содержать проектных файлов, если целью проекта является предоставление исходных файлов другим проектам.

Как минимум в проекты входят исходные файлы (*.cpp) и заголовочные файлы (*.h, *.hpp).

Тип проекта обычно задается при создании, это может быть исполняемый файл, статическая библиотека и т.д.

Проект может нуждаться в подпроектах. Подпроект — это исходные тексты (и не только) другого проекта, импортированные в структуру каталогов проекта.

Билет №19

1. Преобразование типов явное и неявное.

Поскольку Си является типизированным языком, в нем определены явные и неявные преобразования типов данных.

Неявные преобразования типов происходят в следующих случаях:

- при выполнении операций осуществляются обычные арифметические преобразования (которые были рассмотрены выше);

- при выполнении операций присваивания, если значение одного типа присваивается переменной другого типа;

- при передаче аргументов функции.

Явное преобразование происходит при выполнении операций приведения типов. Имеет формат:

( имя-типа ) операнд.

double d;

float f;

f=(float)d;

величина будет явно преобразовываться к типу float

2. Таблицы указателей на функции и вызов функции из таблицы

С функциями возможны операции: вызов функции и взятие адреса. Указатель, полученный с помощью последней операции можно использовать для вызова функции.

Каждый класс с виртуальными функциями элементами имеет указатели на таблицу виртуальных функций. Каждый объект класса имеет указатель на эту таблицу, так что, когда виртуальная функция элемент вызывается, этот указатель является ссылкой на подходящую статью таблицы, и затем указатель функции выдает нужную функцию элемент. Каждая виртуальная функция элемент проиндексирована в таблице. Это индексирование выполняется во время компиляции.

3. Доступ к глобальным и локальным данным, область видимости для идентификаторов, объявленных внутри класса

Тело класса определяет отдельную область видимости. Объявление членов внутри тела помещает их имена в область видимости класса. Идентификаторы, объявленные в классе, видимы только внутри этого класса, т.е. во всех его методах.

Локальные переменные представляют собой переменные, объявленные внутри класса. Локальные переменные известны только тому классу, внутри которого они объявлены. Пример объявления локальной переменной:

Class first(void)

{

int perem; // объявление локальной переменной

perem=10;

}

Глобальная переменная представляет собой переменную, чье имя и значение известны на протяжении всей программы. Её можно использовать из любого класса данной программы

Чтобы объявить глобальную переменную надо объявить её вне какого-либо класса. Пример объявления глобальной переменной:

int global_perem; // объявление глобальной переменной

class first(void)

{

global_perem=10;

}