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 − นี่คือการใช้งานที่ยากที่สุด ใช้สำหรับตีความรูปแบบบิตซ้ำและอยู่ในระดับต่ำมาก มันถูกใช้สำหรับสิ่งต่าง ๆ เช่นการเปลี่ยนสตรีมข้อมูลดิบเป็นข้อมูลจริงหรือจัดเก็บข้อมูลในบิตต่ำของตัวชี้ที่จัดตำแหน่ง