Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на контрольные вопросы по лекции 6

.docx
Скачиваний:
6
Добавлен:
20.06.2023
Размер:
16.47 Кб
Скачать

Ответы на контрольные вопросы по лекции 6

Дисциплина: объектно-ориентированное программирование

Студент: Заболотников М.Е.

Группа: 9373

  1. Что такое деструктор класса? Когда он необходим?

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

  1. Что представляет собой перегрузка операций для класса?

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

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

Выделяют три вида операций: унарные, бинарные и одну тернарную. Арность операции и количество параметров перегружающего её метода класса зависит от количества операндов над которыми производится операция. Унарные операции производятся над одним операндом (унарные плюс и минус, например), бинарные требуют наличия двух операндов (операции сложения, вычитания, сравнения и т.п.), и одна тернарная операция – "a ? b : c", – которая производится над тремя операндами.

  1. Для чего и когда следует перегружать предопределенную операцию присваивания (=)?

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

  1. В чем особенность перегрузки префиксной и суффиксной форм унарных операций инкремента и декремента?

Разница между ними заключается в возвращаемом ими значении. Перегруженные префиксные операторы возвращают объект после того, как он был инкрементирован или декрементирован. Следовательно, перегрузить их довольно просто. Мы просто увеличиваем или уменьшаем наши переменные-члены, а затем возвращаем *this.

  1. Как реализуется операция преобразования объектов одного класса в другой?

Такая функция преобразования должна быть нестатической функцией-членом без возвращаемого типа и с пустым списком аргументов. Преобразование происходит неявно в выражениях присвоения, при передаче параметров функциям, и в значениях, возвращаемых функциями. Преобразующая функция-член в форме A::operator B() и конструктор в форме B::B(const A&) обеспечивает преобразование из типов объекта A в тип объекта B.

  1. Что такое друзья класса? Для чего они нужны?

"Друзья" класса – это тоже такие классы, объекты которых имеют полный доступ ко всем свойствам этого класса. То есть если класс A объявляется "дружественным" к классу B, то объекты класса A имеют доступ ко всем членам данных и методам класса B.