Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mencapai Fungsi \'instanceof\' Java dalam C ?

Patricia Arquette
Lepaskan: 2024-10-27 20:40:30
asal
251 orang telah melayarinya

 How to Achieve Java's

Pemutus Dinamik dalam C : Setara dengan instance Java

Instanceof dalam Java membenarkan pembangun menentukan sama ada objek tergolong dalam kelas tertentu. Dalam C , terdapat beberapa teknik untuk mencapai kefungsian yang serupa.

Kaedah:

Dynamic_cast, mekanisme pengenalpastian jenis masa jalan, ialah pendekatan biasa. Ia menyediakan akses kepada jenis sebenar (dinamik) objek:

<code class="cpp">if (NewType* v = dynamic_cast<NewType*>(old)) {
    // old was safely casted to NewType
    v->doSomething();
}</code>
Salin selepas log masuk

Pertimbangan:

  • Memerlukan sokongan pengkompil untuk Maklumat Jenis Run-Time (RTTI)
  • Boleh menjadi tidak cekap jika digunakan secara berlebihan

Pendekatan Alternatif:

  1. Fungsi Maya: Tentukan a kaedah maya dalam kelas asas yang menimpa subkelas. Apabila memanggil kaedah ini pada objek, pelaksanaan subkelas akan digunakan.
  2. Corak Pelawat: Laksanakan kelas pelawat dengan kaedah yang menerima subkelas sebagai parameter. Kaedah ini boleh mengendalikan gelagat khusus untuk subkelas yang berbeza.
  3. Penghitungan Semak Jenis: Tambahkan penghitungan pada kelas, mewakili jenis yang mungkin. Semak penghitungan untuk mengesahkan jenis objek. Walau bagaimanapun, pendekatan ini mungkin tidak menyokong pelbagai peringkat pewarisan.

Awas:

Pemutus dinamik harus digunakan dengan bijak kerana ia boleh menunjukkan kecacatan reka bentuk. Pertimbangkan alternatif seperti fungsi maya atau corak pelawat untuk mengelakkan penggunaan yang berlebihan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi \'instanceof\' Java dalam 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!