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

ตัวดำเนินการแคสต์ใน C ++ คืออะไร


การแคสต์คือโอเปอเรเตอร์พิเศษที่บังคับให้ข้อมูลประเภทหนึ่งถูกแปลงเป็นอีกประเภทหนึ่ง ในฐานะที่เป็นโอเปอเรเตอร์ นักแสดงจะเป็นเอกภาพและมีความสำคัญเหมือนกับโอเปอเรเตอร์ unary อื่นๆ

Cast ทั่วไปที่สนับสนุนโดยคอมไพเลอร์ C++ ส่วนใหญ่มีดังต่อไปนี้ -

(type) expression

โดยที่ประเภทคือประเภทข้อมูลที่ต้องการ มีโอเปอเรเตอร์แคสต์อื่นๆ ที่รองรับโดย C++ ซึ่งแสดงอยู่ด้านล่าง -

  • const_cast (expr) - ตัวดำเนินการ const_cast ใช้เพื่อแทนที่ const และ/หรือความผันผวนในการร่ายอย่างชัดเจน ประเภทเป้าหมายต้องเหมือนกับประเภทต้นทาง ยกเว้นการเปลี่ยนแปลงแอตทริบิวต์ const หรือแอตทริบิวต์ที่ไม่แน่นอน การหล่อประเภทนี้ควบคุมแอตทริบิวต์ const ของวัตถุที่ส่งผ่าน ไม่ว่าจะตั้งค่าหรือนำออก
  • dynamic_cast (expr) - dynamic_cast ดำเนินการรันไทม์ที่ตรวจสอบความถูกต้องของการแคสต์ หากไม่สามารถทำการแคสต์ได้ การแคสต์จะล้มเหลวและนิพจน์จะประเมินเป็นโมฆะ dynamic_cast ทำการร่ายในประเภท polymorphic และสามารถส่งตัวชี้ A* ไปที่ตัวชี้ B* ได้ก็ต่อเมื่อวัตถุที่ชี้ไปที่จริง ๆ แล้วเป็นวัตถุ B
  • reinterpret_cast (expr) - ตัวดำเนินการ reinterpret_cast เปลี่ยนตัวชี้เป็นพอยน์เตอร์ประเภทอื่น นอกจากนี้ยังอนุญาตให้ส่งจากตัวชี้ไปยังประเภทจำนวนเต็มและในทางกลับกันด้วย
  • static_cast (expr) - ตัวดำเนินการ static_cast ทำการหล่อแบบ nonpolymorphic ตัวอย่างเช่น สามารถใช้เพื่อส่งตัวชี้คลาสฐานไปยังตัวชี้คลาสที่ได้รับ

ตัวอย่าง

การร่ายเหล่านี้เป็นกรณีเฉพาะมาก ลองมาพิจารณาตัวอย่างกับ cast ที่คอมไพเลอร์ใช้ -

#include <iostream>
using namespace std;
main() {
   double a = 21.09399;
   float b = 10.20;
   int c ;
   c = (int) a;
   cout << "Line 1 - Value of (int)a is :" << c << endl ;
   c = (int) b;
   cout << "Line 2 - Value of (int)b is  :" << c << endl ;
   return 0;
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is  :10