Въведение за конструктор и разрушител в C ++
- Constructor и Destructor в C ++ играят значителна роля в обектно-ориентиран език за програмиране като C ++. Тъй като ние имаме клас и неговите обекти в C ++, докато създаваме новия обект, всеки път конструктор може да бъде използван за инициализиране на обекта, докато когато обектът е на път да унищожи деструктора, може да се използва за извършване на необходимите публикации.
- Когато създаваме обект от клас в C ++, може да искаме да инициализираме полета на клас с някои стойности по подразбиране или определени стойности. Един клас има своите полета и методи. Полетата са предимно променливи или обекти. Присвоявайки стойностите по подразбиране на тези полета, ние правим лесното ни програмиране. Конструкторът е като нормална функция в класа и компилаторът го извиква автоматично, когато създадем нов обект от този клас. Докато създаваме обекта, ние всъщност предаваме необходимите стойности като аргумент на обекта, тези аргументи се предават на конструктора на класа. Стойностите на аргумента сега могат да бъдат присвоени на съответните полета, които са достъпни в клас. В допълнение, можем да зададем стойности по подразбиране на полетата, в които не предаваме аргументите. Има такива различни типове и начини, чрез които инициализираме конструктора в C ++.
- Конструкторът е като функция на специален член на клас. Всеки път, когато създаваме нов обект, конструкторът се изпълнява. Синтаксисът на конструктор е много прост, функцията ще има същото име като тази на клас, в който е дефинирана и няма да има връщащ тип, дори невалиден. Конструкторите са много полезни при определянето на определени стойности на определени членове от класа. Конструкторът може да се използва за изпълнение на логика, свързана с класове, по време на инстанция.
Синтаксис на конструктора
class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)
Деструкторът в C ++ е също специална функция член в клас. Деструкторът се извиква автоматично от компилатора и се изпълнява всеки път, когато обектът от този конкретен клас излезе извън обхвата или се изтрие, като използва израза за изтриване към показалеца на този обект. Всеки път, когато обектът бъде унищожен от компилатор, се извиква разрушителят. В деструктора можем да изпълняваме оператори, които могат да бъдат всичко, което искаме да изпълним, когато обектът излезе извън обхвата. След операциите като затваряне на връзки, затваряне на файлове и т.н. са някои от примерите, които можем да извършим в деструктора.
Синтаксис на Destructor
class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)
Синтаксисът на деструктора е много подобен на конструктора. Той ще има същото име като това на клас, в който е определен и няма да има връщащ тип. Въпреки това, само той ще има знак ~ (tilde) преди името на деструктора. Обикновено деструкторът се използва за разпределяне на динамично разпределената памет за класа и неговите членове. Разрушителите са много полезни за извършване на пост операции, които могат да се извършват по бизнес логика.
Защо имаме нужда от конструктор и деструктор в C ++?
C ++ е обектно-ориентиран език за програмиране. Във всеки обектно-ориентиран език за програмиране ние картографираме оригиналните обекти от реалния живот с класа и обектите.
Нека да разберем защо се нуждаем от конструктор и деструктор в C ++ чрез пример от реалния живот. Да предположим, че имаме субект Box и сме създали клас за него и той ще има и обекти, които могат да се използват и в други части. Сега кутията ще има определени параметри като височина, дължина, ширина и т.н. и всеки път, когато създадем обект от клас Box, искаме да приеме някаква стойност по подразбиране. Да кажем за височина, тази цел може да бъде постигната чрез присвояване на определена стойност по подразбиране на височината в конструктора на този клас. По подобен начин и за други параметри могат да бъдат зададени стойности. След като използваме обекта на Box, нека кажем, че искаме незабавно някакво конкретно действие или да извикаме някаква функция. Това може да стане с помощта на Destructor в C ++. Необходимите изявления ще бъдат добавени към деструктора на този клас. Това са предимствата в реално време от наличието на конструктор и деструктор в C ++.
Как работят конструкторите и разрушителите в C ++?
Както беше обсъдено по-рано, конструкторът се извиква от компилатора всеки път, когато се създаде обект. Ако не дефинираме конструктор, компилаторът C ++ автоматично генерира конструктор по подразбиране за нас. Конструкторът се използва за разпределяне на паметта, ако е необходимо, и за конструиране на обекта от клас, докато деструктор се използва за извършване на необходимото почистване, когато обектът е унищожен. Разрушителят се извиква автоматично от компилатора, когато обектът бъде унищожен. Ако не дефинираме нашия собствен деструктор, компилаторът C ++ създава деструктор по подразбиране.
Създаване на конструктор и разрушител в C ++? (Примери)
1. Пример за конструктор
Да вземем същия пример на клас Box, за да декларираме конструктора. Нека присвоим някои стойности по подразбиране на височината и теглото на кутията.
код
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)
Така че, когато обектът от този клас е създаден, той ще върне обекта от тип Box със стойности по подразбиране, както са дефинирани по-горе.
2. Пример за разрушител
Всеки път, когато обектът на Box излезе извън обхвата, в нашия пример ще отпечатаме някакъв текст на конзолата. В действителност кодирането може да бъде извършена някаква специфична дейност.
код
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
//destructor
~Box () (
// post statements
cout << “Box Object is being deleted.” << endl;
)
)
Така че, когато обектът на Box излезе извън обхвата, компилаторът ще разпечата текста, както е определен по-горе на конзолата.
заключение
Така Constructor и Destructor играят важна роля в обектно-ориентирания език за програмиране. Конструктор се използва за инициализиране на обекта и деструктор се използва, докато унищожава обекта. Както конструкторът, така и деструкторът са много полезни при програмиране на езика C ++.
Препоръчителни статии
Това е ръководство за Конструктор и Деструктор в C ++. Тук обсъждаме нуждите на Constructor и Destructor в C ++, начина на използване, различни синтаксиси и примери. Можете също да разгледате и другите ни свързани статии, за да научите повече-
- Функции на масив C ++
- Копиране на конструктор в C ++
- Въведение в C ++
- Видове конструктор в С
- Ръководство за Destructor в C #
- Destructor в PHP с примери