
Деструктор в C + +
За разлика от един конструктор, един деструктора се нарича, когато една програма е завършен като се използва например за един обект. А деструктора прави почистване зад кулисите. Като основен конструктор, компилаторът винаги създават деструктора подразбиране, ако не го направите. Като основен конструктор, един деструктор има същото име като своя цел. Този път името на деструктора започва с
един тилда.
За да създадете свой собствен деструктора, в заглавната част на файла, въведете ~ последвано от името на обекта. Ето един пример:
# Ifndef BricksH # Определят BricksH клас TBrick ( обществеността: TBrick (); TBrick (двойно L, двойно ч, двойно Т); TBrick (Const TBrick & Brk); ~ TBrick (); двойно getLength () Const; нищожен setLength (Const двойно л); двойно getHeight () Const; нищожен setHeight (Const двойно з); двойно getThickness () Const; нищожен setThickness (Const двойно Т); двойно CementVolume (); нищожен ShowProperties (); Частни: двойна дължина; двойна височина; Дебелина двойно; ); # Изпитва
Както направи с конструктора по подразбиране, не е нужно да нищо в изпълнението на деструктора. В действителност, когато една програма се прекратява, компилаторът може да се унищожат всички обекти и променливи, които вашата програма е използвал. Единственият истински път, когато ще се занимава с унищожаване на обекти е, ако обектите са създадени динамично, което ще научите, когато учат точки.
Можете да реализирате своите деструктора в заглавния файл, като просто я предоставят с празни скоби:
# Ifndef BricksH # Определят BricksH клас TBrick ( обществеността: ... ~ TBrick () () ... Частни: ... ); # Изпитва
В противен случай, можете да го въведе в CPP файла с празни скоби. Ето един пример:
TBrick:: ~ TBrick () ( )
Копие на строителите
Копиране на обект
След създаването на един обект и определяне на съответните стойности на своите членове, можете да изпълните всяка редовна експлоатация на него. Въпреки това получава малко специално с обекти, които ще се разширява при обучението за оператор претоварване, можете да присвоите един обект към друг обект. Ние вече сме научили:
| Как да възлага | Пример |
| Стойност на променлива | INT A = 250; |
| Стойността на една променлива в друга | NbrOfBoys = NbrOfGirls; |
| Стойност на държавите-обект на | Video.Category = "Драма" |
Присвояване на променлива в друга, е еквивалентен на създаване на копие на тази променлива. Що се присвои на променлива до друг, можете да присвоите един обект към друг. И двата обекти трябва да бъдат разпознаваеми, равна на компилатор. Представете си, че искат да изградят една и съща тухла два пъти. Всичко, което трябва да направите, е да се даде един тухла в друга, е да се грижи за в следните основни () функция:
//------------------------------------------------ --------------------------- # Включват Именно чрез STD; # Включват "Bricks.h" //------------------------------------------------ --------------------------- INT главната () ( / / Деклариране една тухла TBrick Hott (5.25, 3.55, 3.55); Hott.ShowProperties (); Съдът <<endl; / / Присвояване на една тухла в друга TBrick Bosco = Hott; Bosco.ShowProperties (); връщането на 0; ) //------------------------------------------------ ---------------------------
Ето един пример за прилагането на програмата:
Фондация Тухла Имоти дължина = 5,25 Височина = 3,55 Дебелина = 3,55 Цимент том = 17,44 фондация Тухла Имоти дължина = 5,25 Височина = 3,55 Дебелина = 3,55 Цимент том = 17,44 Натиснете произволен клавиш, за да продължи ... Забележете, че и двете поръчки показва едно и също нещо.
Използването на деструктор
- За да се убедите в строителството и ефекти унищожаване на обекта, създаване на нови конзолата, наречен библиотека
- Промяна на съдържанието на файл, както следва:
/ / # Включват <iostream> Именно чрез STD; / / клас TBook ( обществеността: TBook (); / / Конструктор ~ TBook (); / / деструктор нищожен съобщение () (съд <<"\ TI прочетете N книгата \";) ); / / TBook:: TBook () ( Съдът <<"Виждам една книга ... С помощта на строителите \ N"; ) / / TBook:: ~ TBook () ( Съдът <<"затвори книгата! С помощта на деструктора \ N"; ) / / INT главната () ( Съдът <<"Аз съм най-н библиотека \"; ( TBook А; ) Съдът <<"не \ НИ хареса тази книга. Аз ще се опитам друга \ N \ N"; ( TBook Б; Б. Съобщение (); ) Съдът <<"\ НИ съм се от N библиотека \ \ N"; връщането на 0; ) / /
- Изпълнение на програмата, за да видите резултата:
Аз съм в библиотеката Виждам една книга ... С помощта на строителите Затвори книгата! С помощта на деструктора Аз не харесват тази книга. Аз ще се опитам друго Виждам една книга ... С помощта на строителите Четох книгата Затвори книгата! С помощта на деструктора Аз съм се от библиотеката
- Върнете се програмна среда
- Поднови Студентски проект от Students2 папка.
- За да създадете деструктора за нашите TStudent клас, промяна на заглавния файл, както следва:
# # Ifndef StudentsH определят StudentsH # включват <iostream> Именно чрез STD; клас TStudent (обществеността: TStudent (); TStudent (низ F, низ L); / / Име Initializer TStudent (INT DOB, INT тълпа, INT хулиган); / / начална дата на раждане TStudent (Fn низ, LN низ, INT DOB, INT тълпа, INT хулиган); ~ TStudent (); TStudent (Const TStudent & S); нищожен Display (); Частни: Име низ; низ Фамилно име; INT DayOfBirth ; INT MonthOfBirth; INT YearOfBirth;); # изпитва - Прилагане на деструктор в досието Students.cpp, както следва:
TStudent:: ~ TStudent () ( )
- Тестовете на програмата и да се върнете програмиране вашата среда.
Тагове: C + + деструктора , C + + Програмиране , клас , строители , деструктора
Като това, което виждате?
Станете един от редовна войска, като се абонирате! Вие ще бъдете първите, които знаят, когато добавите още много постове просто така. Присъедини се от или RSS Feeds или имейли с актуализации днес!
Има 2 коментара за тази публикация. Можете да проследите коментарите към този пост чрез RSS 2.0 емисия . Можете да прескочите до края и оставите коментар или TrackBack от вашия собствен сайт.



































Той е много добър отбелязва програмиране, но са малко по-рано.
аз арго претоварване оглед конструктор & страници копие конструктор ... те werent показва на екрана си