Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengenalpasti Jenis Objek yang Dilalui kepada Fungsi C?
Dalam C , menentukan jenis objek yang diluluskan sebagai parameter boleh menjadi penting untuk mengendalikan kelas polimorfik dan kelas terbitannya. Senario ini timbul apabila fungsi mengatasi fungsi lain yang menerima objek kelas asas, tetapi fungsi mengatasi memerlukan akses kepada fungsi tertentu yang tersedia hanya dalam kelas terbitan.
Untuk menyelesaikan isu ini, dynamic_cast boleh digunakan untuk menghantar objek daripada jenis kelas asas kepada jenis kelas terbitan, membolehkan anda menyemak sama ada objek itu tergolong dalam terbitan yang dikehendaki kelas.
TYPE& dynamic_cast<TYPE&> (object); TYPE* dynamic_cast<TYPE*> (object);
Dynamic_cast melakukan semakan masa jalan untuk mengesahkan kesahihan pelakon. Jika pelakon adalah kepada penunjuk atau rujukan jenis yang tidak sepadan dengan jenis objek sebenar, hasilnya akan menjadi NULL atau membuang pengecualian bad_cast, masing-masing.
Adalah penting untuk ambil perhatian bahawa dynamic_cast memerlukan kelas asas untuk mempunyai sekurang-kurangnya satu fungsi maya untuk berfungsi dengan betul. Ini kerana maklumat jenis masa jalan (RTTI) hanya tersedia untuk kelas polimorfik. Dalam amalan, kebanyakan kelas asas sudah mempunyai pemusnah maya untuk membenarkan objek kelas terbitan dibersihkan dengan betul apabila dipadamkan daripada penuding asas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengenalpasti Jenis Objek yang Dilalui kepada Fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!