Ответы на контрольные вопросы по лекции 6
.docxОтветы на контрольные вопросы по лекции 6
Дисциплина: объектно-ориентированное программирование
Студент: Заболотников М.Е.
Группа: 9373
Что такое деструктор класса? Когда он необходим?
Деструктор класса – это специальный метод класса, который применяется, когда необходимо удалить объект класса и освободить память. Обычно это происходит при использовании динамической памяти.
Что представляет собой перегрузка операций для класса?
Перегрузка операции представляет собой введение в язык двух взаимосвязанных особенностей: возможности объявлять в одной области видимости несколько процедур или функций с одинаковыми именами и возможности описывать собственные реализации операторов.
Как классифицируются операции? Как зависит арность операции и число формальных параметров метода класса, ее перегружающего?
Выделяют три вида операций: унарные, бинарные и одну тернарную. Арность операции и количество параметров перегружающего её метода класса зависит от количества операндов над которыми производится операция. Унарные операции производятся над одним операндом (унарные плюс и минус, например), бинарные требуют наличия двух операндов (операции сложения, вычитания, сравнения и т.п.), и одна тернарная операция – "a ? b : c", – которая производится над тремя операндами.
Для чего и когда следует перегружать предопределенную операцию присваивания (=)?
Операцию присваивания следует перегружать, если в классе описывается динамический контекст его объектов. Это необходимо делать для того, чтобы источник и приемник не имели один и тот же динамический контекст и чтобы при изменении/уничтожении одного объекта того же не происходило и с динамическим контекстом другого.
В чем особенность перегрузки префиксной и суффиксной форм унарных операций инкремента и декремента?
Разница между ними заключается в возвращаемом ими значении. Перегруженные префиксные операторы возвращают объект после того, как он был инкрементирован или декрементирован. Следовательно, перегрузить их довольно просто. Мы просто увеличиваем или уменьшаем наши переменные-члены, а затем возвращаем *this.
Как реализуется операция преобразования объектов одного класса в другой?
Такая функция преобразования должна быть нестатической функцией-членом без возвращаемого типа и с пустым списком аргументов. Преобразование происходит неявно в выражениях присвоения, при передаче параметров функциям, и в значениях, возвращаемых функциями. Преобразующая функция-член в форме A::operator B() и конструктор в форме B::B(const A&) обеспечивает преобразование из типов объекта A в тип объекта B.
Что такое друзья класса? Для чего они нужны?
"Друзья" класса – это тоже такие классы, объекты которых имеют полный доступ ко всем свойствам этого класса. То есть если класс A объявляется "дружественным" к классу B, то объекты класса A имеют доступ ко всем членам данных и методам класса B.