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

Опубликовано: 27 Декабря, 2021

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

Синтаксис:

 ClassName ()
   {
     // Тело конструктора 
   } 

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

Синтаксис:

 ~ Имя класса ()
   { 
   }

Примечание. Если мы не укажем модификаторы доступа для членов внутри класса, то по умолчанию модификатор доступа для членов будет Private.

Пример / реализация конструктора и деструктора:

 класс Z
{
общественность:
    // конструктор
    Z ()
    {
        cout << "Вызванный конструктор" << endl;
    }

    // деструктор
    ~ Z ()
    {
        cout << "Вызывается деструктор" << endl;
    }
};

int main ()
{
    Z z1; // Вызывается конструктор
    int a = 1;
    если (а == 1)
    {
        Z z2; // Вызывается конструктор
    } // Деструктор вызывается для z2
} // Деструктор вызван для z1 

Выход:

 Конструктор называется
Конструктор называется
Деструктор называется
Деструктор называется 

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

S.NO Конструктор Деструктор
1. Конструктор помогает инициализировать объект класса. В то время как деструктор используется для уничтожения экземпляров.
2. Он объявлен как Classname (аргументы, если есть) {Constructor's Body} . В то время как он объявлен как ~ ClassName (без аргументов) {}; .
3. Конструктор может принимать аргументы или нет. Пока не может быть никаких аргументов.
4. Конструктор вызывается при создании экземпляра или объекта класса. Он вызывается при освобождении или удалении объекта класса.
5. Конструктор используется для выделения памяти экземпляру или объекту. Пока он используется для освобождения памяти объекта класса.
6. Конструктор может быть перегружен. Пока его нельзя перегружать.
7. Имя конструктора совпадает с именем класса. Здесь его имя совпадает с именем класса, которому предшествует черепичный (~) оператор.
8. В классе может быть несколько конструкторов. В классе всегда есть один деструктор.
9. Существует концепция конструктора копирования, который используется для инициализации объекта из другого объекта. Здесь нет концепции конструктора копирования.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .