Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Reyting_po_proganyu.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
109.57 Кб
Скачать

1.Перегразка операций индексирования

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

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

2. Чем различаются возможности оператора delete и функции free? delete вызывает деструктор, free нет.  а) нельзя удалить память, выделенную оператором new, с помощью free, можно только с помощью delete; б) нельзя удалить память, выделенную оператором malloc, с помощью delete, можно только с пом, free; в) delete гибче.

3.В каких случаях нельзя реализовать перегрузку операций и перегрузку оператора в форме компонентной функции класса.

при перегрузке ввода-ввывода

Билет 15

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

Преобразования типов бывают сужающими и расширяющими. Сужающие трансформируют величину в тип, который не может содержать всех значений данного типа. Расширяющие преобразования трансформируют величину в тип, который может содержать как минимум все значения исходного типа. Расширяющий тип преобразований безопасен в программировании всегда, сужающий – нет. Преобразование типов может быть как явным, так и неявным. Несмотря на отсутствие в С++механизмов уточнения подтипов, имеется мощная поддержка перегрузки функций. При проверке соответствия учитывается преобразование типов, (переопределение), как встроенное в язык, так и определенное программистом. Принцип, лежащий в основе применяемых преобразований состоит в том, что следует отдавать предпочтение преобразованиям наименее опасным с точки зрения возможных ошибок, наименее «сомнительным». Определенные пользователем преобразования рассматриваются только в том случае, если без них вызов разрешить нельзя.

2. Являются ли доступными при динамическом управлении памятью сочетания: malloc/delete и new/free? Нет не допустимы

3.Зачем нужны дружественные функции

чтоб обращаться к private объектам

Билет 16

1.Перегрузка операций new и delete

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

Использование функциональных операций new и delete должно соответствовать следующим правилам: этим функциям не требуется передавать параметр типа класса. Первым параметром функциям new и new[] должен передаваться размер объекта типа size. При вызове он передается функции неявным образом. Функции new и delete должны определяться с типом возвращаемого значения void* даже если return возвращает указатель на другие типы (например на класс). Операция delete должна иметь тип возврата void и первый аргумент типа *void. Операции new и delete являются статическими элементами класса. Поведение перегруженной операции должно соответствовать действиям, выполняемым ими по умолчанию. Для операции new это означает, что она должна возвращать правильное значение, корректно обработав запрос на выделение памяти нулевого размера или порождать исключения при невозможности выполнения запроса. Для операции delete следует соблюдать условие: удаление любого указателя должно быть безопасным, следовательно внутри операции delete необходимо проверять указатель на NULL (при этом должно быть отсутствие каких-либо действий в случае равенства). Стандартные операции выделения и освобождения

2. Какие компоненты автоматически определяются в пустом классе? Никакие

3.В каком случае неизбежно использование оператора преобразование типов.

выделение памяти и new delete

Билет 17

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]