Rumah > pembangunan bahagian belakang > C++ > Mengapa Menggunakan Pemusnah Maya Tulen dalam Kelas Abstrak C?

Mengapa Menggunakan Pemusnah Maya Tulen dalam Kelas Abstrak C?

DDD
Lepaskan: 2024-12-14 19:33:12
asal
605 orang telah melayarinya

Why Use Pure Virtual Destructors in C   Abstract Classes?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan