Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Operator `instanceof` Java dalam C ?
Dalam C , mencapai kefungsian setara operator instanceof Java melibatkan teknik yang dikenali sebagai pengenalan jenis masa jalan (RTTI) menggunakan dynamic_cast. Ini membolehkan anda mengesahkan sama ada objek yang diberikan, disimpan sebagai penunjuk atau rujukan kepada kelas asasnya, menunjuk kepada contoh kelas terbitan tertentu.
Untuk menyemak sama ada objek ditunjuk oleh penunjuk atau rujukan kepada pangkalan kelas (lama) adalah daripada jenis kelas terbitan tertentu (Jenis Baru), anda boleh menggunakan sintaks berikut:
if(NewType* v = dynamic_cast<NewType*>(old)) { // old was safely casted to NewType v->doSomething(); // Access specific methods of NewType }
Adalah penting untuk ambil perhatian bahawa dynamic_cast memerlukan sokongan pengkompil untuk RTTI, yang mesti didayakan semasa penyusunan.
Walau bagaimanapun, adalah penting untuk mempertimbangkan dengan teliti keperluan dynamic_cast sebelum menggunakannya. Secara umum, ia menunjukkan isu reka bentuk yang berpotensi. Seseorang harus berusaha untuk pendekatan yang lebih mantap dan selamat jenis, seperti:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Operator `instanceof` Java dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!