Dalam C , setara dengan Java's instanceof operator untuk menentukan jenis objek ialah dynamic_cast. Ia menyediakan maklumat jenis masa jalan apabila disusun dengan sokongan pengenalan jenis masa jalan (RTTI) didayakan.
Untuk menggunakan dynamic_cast, ikut sintaks ini:
if(NewType* v = dynamic_cast<NewType*>(old)) { // Type conversion successful }
Walau bagaimanapun, adalah penting untuk mempertimbangkan potensi kelemahan sebelum menggunakan dynamic_cast. Pemeriksaan jenis masa jalan, walaupun berguna dalam senario tertentu, boleh menunjukkan prinsip reka bentuk yang lemah. Pendekatan alternatif termasuk:
Walaupun dynamic_cast digunakan secara meluas, perlu diingat potensi kosnya. Penyelesaian yang mungkin mencukupi dalam banyak kes ialah menambah enum yang mewakili jenis objek dan melakukan hantaran statik berdasarkan nilai enum.
Atas ialah kandungan terperinci Apakah Setara C bagi Operator `instanceof` Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!