วิธีการใช้งานการแปลงประเภทที่ดีที่สุดใน C ++



บทความนี้จะแนะนำคุณเกี่ยวกับการแปลงประเภทใน C ++ และติดตามด้วยการสาธิตแบบเป็นโปรแกรมโดยละเอียดสำหรับสิ่งเดียวกัน

บทความนี้จะแนะนำให้คุณรู้จักกับหัวข้อที่น่าสนใจอีกหัวข้อหนึ่งที่ Type Conversion In C ++ และปฏิบัติตามด้วยการสาธิตการปฏิบัติโดยละเอียด คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้

มาเริ่มกันเลย





พิมพ์การแปลงใน C ++

การแปลงประเภทหมายถึงการแปลงจากประเภทหนึ่งไปยังอีกประเภทหนึ่ง แนวคิดหลักเบื้องหลังการแปลงประเภทคือการทำให้ตัวแปรประเภทหนึ่งเข้ากันได้กับตัวแปรประเภทอื่นเพื่อดำเนินการ ตัวอย่างเช่นในการหาผลรวมของสองตัวแปรหนึ่งในประเภท int และอื่น ๆ ของประเภท float ดังนั้นคุณต้องพิมพ์ตัวแปร cast int เพื่อลอยเพื่อทำให้ทั้งสองเป็นประเภท float สำหรับการหาผลรวม ในบล็อกนี้เราจะเรียนรู้วิธีการแปลงประเภทใน C ++

ไปที่ฟังก์ชันใน python

ใน C ++ มีการแปลงประเภทสองประเภทคือการแปลงประเภทโดยนัยและการแปลงประเภทที่ชัดเจน



การแปลงประเภทโดยนัย

การแปลงประเภทโดยนัยหรือการแปลงประเภทอัตโนมัติทำได้โดยคอมไพเลอร์ด้วยตัวมันเอง ไม่มีทริกเกอร์ภายนอกที่ผู้ใช้ต้องการในการพิมพ์ตัวแปรจากประเภทหนึ่งไปยังอีกประเภทหนึ่ง

สิ่งนี้เกิดขึ้นเมื่อนิพจน์มีตัวแปรมากกว่าหนึ่งประเภท ดังนั้นในสถานการณ์เหล่านั้นการแปลงประเภทอัตโนมัติจะเกิดขึ้นเพื่อหลีกเลี่ยงการสูญเสียข้อมูลในการแปลงประเภทอัตโนมัติประเภทข้อมูลทั้งหมดที่มีอยู่ในนิพจน์จะถูกแปลงเป็นประเภทข้อมูลของตัวแปรที่มีประเภทข้อมูลมากที่สุด

ด้านล่างนี้คือลำดับของการแปลงประเภทอัตโนมัติ คุณยังสามารถพูดได้ว่าประเภทข้อมูลที่เล็กที่สุดถึงใหญ่ที่สุดสำหรับการแปลงประเภท



บูล -> ถ่าน -> int สั้น -> int -> int ที่ไม่ได้ลงนาม -> ยาว -> ไม่ได้ลงนาม -> ยาว -> ลอย -> คู่ -> คู่ยาว

การแปลงโดยปริยายอาจสูญเสียข้อมูลเช่นสัญญาณอาจสูญหายได้เมื่อประเภทที่ลงนามถูกแปลงโดยปริยายเป็นประเภทที่ไม่ได้ลงนามและอาจเกิดการล้นเกินเมื่อระยะยาวถูกแปลงเป็นลอย

ตอนนี้ให้เราดูตัวอย่างเพื่อทำความเข้าใจว่าการแปลงประเภทโดยนัยทำงานอย่างไรใน C ++

ตัวอย่าง

#include โดยใช้ namespace std int main () 12w {int int1 = 100 // integer int1 char char1 = 'c' // character char1 // char1 โดยนัยแปลงเป็น int โดยใช้ค่า ASCII ของ 'c' เช่น 99 int1 = int1 + char1 // int1 ถูกแปลงโดยปริยายเป็น float float flt1 = int1 + 2.7 cout<< 'int1 = ' << int1 << endl << 'char1 = ' << char1 << endl << 'flt1 = ' << flt1 << endl return 0 }

เอาต์พุต

int1 = 199

ถ่าน 1 = ค

flt1 = 201.7

ถัดไปในการแปลงประเภทนี้ในบทความ C ++

การแปลงประเภทที่ชัดเจน

การแปลงประเภทที่ชัดเจนหรือการหล่อประเภทคือการแปลงประเภทที่ผู้ใช้กำหนด ในการแปลงประเภทอย่างชัดเจนผู้ใช้จะแปลงตัวแปรประเภทหนึ่งเป็นประเภทอื่น การแปลงประเภทที่ชัดเจนสามารถทำได้สองวิธีใน C ++:

java คือ vs มี
  • การแปลงตามการมอบหมาย
  • การแปลงโดยใช้ตัวดำเนินการ Cast

ตอนนี้เรามาดูแต่ละวิธีในการโยนประเภทหนึ่งไปยังอีกประเภทหนึ่งอย่างชัดเจน

การแปลงตามการมอบหมาย

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

ตัวอย่าง

คลาสสุ่มในตัวอย่าง java
#include โดยใช้ namespace std int main () {double dbl1 = 8.9 // Explicit conversion from double to int int res = (int) dbl1 + 1 cout<< 'Result = ' << res return 0 }

เอาต์พุต

ผลลัพธ์ = 9

ถัดไปในการแปลงประเภทนี้ในบทความ C ++

การแปลงโดยใช้ Cast Operator

ตัวดำเนินการ Cast เป็นตัวดำเนินการแบบยูนารีซึ่งบังคับให้ประเภทข้อมูลหนึ่งถูกแปลงเป็นข้อมูลประเภทอื่น C ++ มีการแคสต์สี่ประเภท ได้แก่ Static Cast, Dynamic Cast, Const Cast และ Reinterpret Cast

  • นักแสดงคงที่ - นี่คือประเภทของการร่ายที่ง่ายที่สุดที่สามารถใช้ได้ ไม่เพียง แต่ทำการอัปเดตเท่านั้น แต่ยังรวมถึงดาวน์แคสต์ด้วย เป็นการรวบรวมเวลาร่าย จะไม่ดำเนินการตรวจสอบระหว่างรันไทม์เพื่อรับประกันว่าอ็อบเจ็กต์ที่ถูกแปลงเป็นอ็อบเจ็กต์แบบเต็มของชนิดปลายทาง
  • ไดนามิกแคสต์ - ช่วยให้มั่นใจได้ว่าผลลัพธ์ของการแปลงประเภทชี้ไปยังวัตถุที่ถูกต้องและสมบูรณ์ของประเภทตัวชี้ปลายทาง
  • Const Cast - จัดการว่าวัตถุต้องการคงที่หรือไม่คงที่ ช่วยให้มั่นใจได้ว่าต้องตั้งค่าคงที่หรือต้องถูกลบออก
  • ตีความ Cast อีกครั้ง - แปลงชนิดตัวชี้เป็นประเภทตัวชี้อื่น ๆ แม้กระทั่งชั้นเรียนที่ไม่เกี่ยวข้อง ไม่ได้ตรวจสอบว่าชนิดตัวชี้และข้อมูลที่ตัวชี้ชี้นั้นเหมือนกันหรือไม่

มาดูตัวอย่างการแคสต์แบบคงที่

ตัวอย่าง

#include โดยใช้ namespace std int main () {float flt = 30.11 // using cast operator int int1 = static_cast (flt) cout< 

เอาต์พุต

30

สิ่งนี้นำเราไปสู่ตอนท้ายของบทความนี้เกี่ยวกับการแปลงประเภทใน C ++ฉันหวังว่าคุณจะพบข้อมูลนี้และเป็นประโยชน์โปรดติดตามบทช่วยสอนเพิ่มเติมในหัวข้อที่คล้ายกันนอกจากนี้คุณยังสามารถชำระเงินโปรแกรมการฝึกอบรมของเราได้o รับความรู้เชิงลึกเกี่ยวกับ jQuery พร้อมกับแอพพลิเคชั่นต่างๆที่คุณทำได้ สำหรับการฝึกอบรมออนไลน์สดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นของบทความนี้แล้วเราจะติดต่อกลับไป