Конструктор и деструктор

Anonim

Класс лежит в основе объектно-ориентированного программирования (ООП). Это как план создания объектов, который предоставляет начальные значения для переменных-членов и функций-членов. Это основной строительный блок ООП, который определяет природу будущего объекта. Самое важное в классе - это то, что он определяет новый тип данных и после его определения может быть использован для создания объектов такого типа. Поэтому было бы достаточно сказать, что класс является шаблоном для объекта, а объект фактически является экземпляром класса. Он используется для создания и управления новыми объектами и поддержки наследования, что является одной из основных концепций объектно-ориентированных языков программирования, таких как Java. Короче говоря, класс организует информацию о типе данных, чтобы повторно использовать элементы при создании нескольких экземпляров этого типа данных. Данные или переменные, определенные в классе, называются переменными экземпляра.

Что такое конструктор?

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

Что такое деструктор?

Деструктор - совершенно другая концепция; это специальный метод, который вызывается, когда экземпляр класса удаляется из памяти. Деструктор вызывается автоматически, когда объект больше не нужен или вот-вот исчезнет или будет выпущен явно. Основная цель деструктора - избавиться от ресурсов, которые объект использовал в течение своего жизненного цикла. Это дает объекту последний шанс освободить любую выделенную память, так что будет достаточно места в куче для хранения новых объектов для эффективного выполнения программ. Деструкторы часто используются вместе с конструкторами, за исключением того, что они используются для уничтожения объектов, созданных с использованием конструкторов. Идея состоит в том, чтобы де-инициализировать объекты, когда они удаляются, чтобы освободить память для новых объектов. Подобно конструкторам, деструкторы определяются как подпрограммы в определении класса и имеют то же имя, что и имя класса, за исключением того, что деструктор имеет префикс ~ (тильда). Деструкторы называются явно в C ++, однако в Java нет деструкторов.

Разница между конструктором и деструктором

Цель конструктора и деструктора

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

Выделение памяти

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

название

Оба конструктора и деструкторы являются специальными функциями-членами класса с тем же именем, что и имя класса, за исключением того, что деструктор имеет префикс оператора ~ (тильда). Конструктор - это не что иное, как метод, который не имеет типа возврата, даже не пусто, тогда как деструкторы в точности противоположны конструкторам.

перегрузка

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

аргументы

В объектно-ориентированном программировании конструкторы часто принимают аргументы, которые они используют для установки требуемых переменных-членов, тогда как деструкторы не принимают никаких аргументов.

Работа конструктора и деструктора

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

Деструктор конструкторских стихов: сравнительная таблица

Резюме конструктора Vs. Destructor

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