919 читали · 4 года назад
Простое введение в C++. Часть 2. Конструкторы и деструкторы
В этой статье мы рассмотрим, для чего в C++ нужны конструкторы и деструкторы. Проблема с инициализацией Как только мы начали работать с классами, то есть объединили данные и код в одном месте, то тут же возникает  проблема с инициализацией переменных, то есть  с заданием исходных значений. Например, в языке С мы можем создать переменную и тут же задать ей значение: int x = 5; Эта строка прямого действия — как она написана, так она и выполняется. В C++ так сделать нельзя, потому что объявление класса — это просто описание свойств класса, а выполнение возможно только в экземпляре класса. То есть...
❌ Деструктор __del__
(часто спрашивают на собеседованиях) Этот магический метод позволяет определить поведение экземпляра пользовательского типа при готовности интерпретатора уничтожить его. Многие думают, что del x вызывает метод x.__del__. Это неправда. Python использует механизм подсчета ссылок, и del x – лишь один из способов уменьшить количество ссылок на 1. 📎 Примеры. Определим такой класс, где будем следить за вызовом его метода __del__: class Bazooka:   def __del__(self):     print('Bazooka.__del__()') >>>...