Məhv edən
Destructor, kompilyator bir obyekti məhv edərkən həmişə yerinə yetirən xüsusi bir üzv funksiyadır. Ayrılmış yaddaşın boşaldılması, istifadə olunan mənbələrin bağlanması və atılması və bir obyekti məhv etməzdən əvvəl icra etmək istədiyimiz hər şey üçün istifadə olunur.
Dağıdıcının adı tilde (~) ilə başlayır və ardından sinifin adı verilir. Dağıdıcının heç bir parametri yoxdur. Şəxsi sinif üçün bir dağıdıcı nümunəsi:
Person::~Person() { cout << "Destructor called for " << firstName << " object" << endl; }
Bu mövzu zamanı üç obyekt yaratdıq:
Person person1;//declare a person //use constructor with 3 parameters Person person2("Smith", "James", 1992); person2.print(); Person person3("Green", "Alan"); person3.print();
Bu proqramı icra edin. Bütün yaradılmış obyektlər üçün məhvedici çağırılacaq:
Varsayılan konstruktor başlayır
3 parametrli konstruktor başlayır
Ad Smith
Soyadı James
Doğum ili 1992
3 parametrli konstruktor başlayır
Ad Yaşıl
Soyad Alan
Doğum ili 1990
Destructor Green obyektini çağırdı
Dağıdıcı Smith obyektini çağırdı
Dağıdıcı obyekt çağırdı
Sonuncu sətirdə “Nöqtəçi çağırıldı” heç bir ad göstərmir, çünki şəxs1 default qurucudan istifadə edərək yaradılmışdır. Gördüyünüz kimi, dağıdıcılar yaradılan obyektlərin sırasına nisbətən arxa sırada çağırılır. İlk yaradılan obyekt sonuncusu məhv edilir. Və son yaradılan obyekt əvvəlcə məhv edilir.