Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การส่งแบบปกติกับ static_cast กับ dynamic_cast ในโปรแกรม C++


static_cast − ใช้สำหรับการแปลงประเภทปกติ/ธรรมดา นี่ยังเป็นนักแสดงที่รับผิดชอบสำหรับการบีบบังคับแบบโดยปริยายและยังสามารถเรียกได้อย่างชัดเจน คุณควรใช้ในกรณีเช่นแปลง float เป็น int, char เป็น int เป็นต้น

ไดนามิก_คาสต์ − แคสต์นี้ใช้สำหรับจัดการกับความหลากหลาย คุณจำเป็นต้องใช้เมื่อคุณส่งไปยังคลาสที่ได้รับเท่านั้น ใช้เฉพาะในการสืบทอดเมื่อคุณใช้จากคลาสพื้นฐานเป็นคลาสที่ได้รับ

แคสต์ปกติ − นี่คือคาสต์ที่ทรงพลังที่สุดที่มีใน C++ เนื่องจากมันรวม const_cast, static_cast และ reinterpret_cast แต่ก็ไม่ปลอดภัยเช่นกันเพราะไม่ได้ใช้ dynamic_cast สิ่งนี้เรียกว่าเป็นนักแสดงสไตล์ C

แคสต์อื่นๆ ที่มีให้

const_cast - สามารถใช้เพื่อลบหรือเพิ่ม const ให้กับตัวแปร สิ่งนี้มีประโยชน์หากจำเป็นต้องเพิ่ม/ลบ constness จากตัวแปร

reinterpret_cast − นี่เป็นวิธีที่ยากที่สุดในการใช้ ใช้สำหรับตีความรูปแบบบิตซ้ำและอยู่ในระดับต่ำมาก มันถูกใช้สำหรับสิ่งต่าง ๆ เช่นการเปลี่ยนสตรีมข้อมูลดิบเป็นข้อมูลจริงหรือจัดเก็บข้อมูลในบิตต่ำของตัวชี้ที่จัดตำแหน่ง