Selain konstruktor yang dipanggil secara otomatis ketika objek kelas dibuat seperti yang disebutkan di bagian sebelumnya, suatu fungsi juga dipanggil secara otomatis ketika objek tersebut dimusnahkan. Terdapat tanda gelombang ~ di depan namanya. Kegunaan Untuk membedakan konstruktor, fungsinya terutama digunakan untuk membersihkan akibat setelah objek dilepaskan. Itu adalah destruktor .
Sama seperti konstruktor dan nama kelas, tidak ada nilai kembalian. Jika pengguna tidak mendefinisikannya, sistem akan secara otomatis menghasilkan destruktor kosong. Setelah ditentukan oleh pengguna, secara otomatis dipanggil ketika objek dihancurkan.
Berbeda dengan konstruktor, meskipun keduanya merupakan tipe publik. Konstruksi dapat kelebihan beban dan memiliki banyak saudara, tetapi destruktor tidak dapat kelebihan beban, tetapi dapat berupa fungsi virtual, dan suatu kelas hanya dapat memiliki satu destruktor.
Selanjutnya, kita mengambil kelas Siswa sebagai contoh dan terus menambahkan destruktor. Pada saat yang sama, kita menambahkan informasi tentang kelas saat ini di konstruktor dan destruktor untuk mengidentifikasi kelas mana yang dibuat dan dimusnahkan :
#include<iostream>#include<Cstring>usingnamespacestd;classStudent{private:intnum;//nomor siswa charname[100];//nama intscore;//score public:Student(intn,char*str,ints);~Student ();intprint();intSet(intn,char*str,ints);};Siswa::Siswa(intn,char*str,ints){num=n;strcpy(nama,str);skor=s;cout <<angka<<<<nama<<<<nilai<<;cout<<Pembuat<<endl;}Siswa::~Siswa(){cout<<angka<<<<nama<<<<nilai<<; cout<<destructor<<endl;}intStudent::print(){cout<<num<<<<nama<<<<score<<endl;return0;}intStudent::Set(intn,char*str,ints) {num=n;strcpy(nama,str);skor=s;}intmain(){StudentA(100,dot,11);StudentB(101,cpp,12);return0;}
Harap pahami dengan cermat konstruktor dan destruktor dalam kode di atas, dan perhatikan bahwa dua objek A dan B didefinisikan dalam fungsi utama, dan ujilah di komputer Anda sendiri. Anda dapat melihat bahwa efek yang dijalankan adalah sebagai berikut:
Anda dapat melihat bahwa urutan pemanggilan konstruktor dan urutan pemanggilan penghancur objek A dan B sangat berlawanan! Alasannya adalah objek A dan B merupakan objek lokal dan juga disimpan di area tumpukan. Mereka juga mengikuti urutan "masuk pertama, keluar terakhir"!
Pastikan untuk menguji dan memverifikasi hasilnya secara langsung!