Pemusnah Maya Tulen dan Kelas Abstrak dalam C
Pemusnah maya memainkan peranan penting dalam mengurus ingatan dalam C apabila berurusan dengan perhubungan polimorfik. Walau bagaimanapun, tujuan pemusnah maya tulen menimbulkan persoalan, terutamanya berkaitan dengan kelas abstrak.
1. Bilakah Pemusnah Dijadikan Maya Tulen?
Pemusnah maya tulen tidak mempunyai pelaksanaan dalam kelas asas, menjadikannya mustahil untuk membuat seketika objek kelas itu. Ia biasanya digunakan apabila anda ingin memaksa semua kelas terbitan untuk menyediakan pelaksanaan pemusnah mereka sendiri.
Walau bagaimanapun, tiada sebab praktikal untuk menggunakan pemusnah maya tulen. Pengkompil akan menghasilkan pemusnah tersirat untuk kelas terbitan jika pengarang tidak menyediakannya, menjadikan pemusnah maya tulen dalam kelas asas tidak relevan untuk kelas terbitan.
2. Amalan Baik untuk Kelas Abstrak dan Pemusnah
Adalah tidak dianggap sebagai amalan yang baik untuk menjadikan pemusnah tulen maya dalam kelas abstrak. Pemusnah maya tetapi bukan tulen sudah memadai untuk menandakan kelas sebagai abstrak.
Walau bagaimanapun, mungkin terdapat sebab yang boleh difikirkan untuk menggunakan pemusnah maya tulen dalam kelas abstrak: untuk berfungsi sebagai peringatan bagi kelas terbitan untuk melaksanakan kod pembersihan khusus. Tetapi pendekatan ini tidak diterima pakai secara meluas.
Nota: Walaupun pemusnah adalah maya tulen, ia memerlukan pelaksanaan dalam kelas asas untuk membenarkan instantiasi kelas terbitan.
Ringkasnya, walaupun pemusnah maya tulen dibenarkan dalam C , tiada keperluan praktikal untuknya. Apabila bekerja dengan kelas abstrak, pemusnah maya bukan tulen adalah mencukupi untuk memastikan kelas terbitan mempunyai pelaksanaan pemusnah mereka sendiri.
Atas ialah kandungan terperinci Mengapa Menggunakan Pemusnah Maya Tulen dalam Kelas Abstrak C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!