Implicit conversion
Implicit conversion เป็นการแปลงข้อมูลมาตรฐานที่จะทำอัตโนมัติเมื่อตัวแปรหนึ่งถูกคัดลอกไปยัง ตัวแปรหนึ่ง เราได้เห็นมาแล้วในหลายๆ ตัวอย่างที่ผ่านมาint a = 10.5; short b = 4; float c = a / b;ในตัวอย่างนี้ เรามี 3 คำสั่ง และแต่ละคำสั่งได้ทีการแปลงข้อมูลแบบ implicit conversion เราได้สร้างตัวแปร
a
และ b
ในตัวอย่างเราจะได้ a เป็น 10 เพราะว่าตัวแปร a นั้นเป็น integer
ถึงแม้ว่าเราจะได้กำหนดค่า 10.5 ให้มัน
แต่คอมไพเลอร์จะทำการแปลงข้อมูลอัตโนมัติ นี้เรียกว่า Implicit conversionexpression
int c = a / b;
c จะมีค่าเป็น 2 เพราะเกิดจาการทำงานของคำสั่ง a / b
เนื่องจากตัวแปรทั้งสองทั้ง a และ b มีประเภทเป็น (int)
ถึงแม้ว่าเราจะใช้คำสั่ง short ในการประกาศตัวแปร b แต่มันมีขนาดเล็กกว่า
int และทั้งสองประเภทเก็บข้อมูลประเภทเดียวกันType casting
ในภาษา C++ เราสามารถแปลงข้อมูลโดยการใช้วิธีที่เรียกว่า type-casting มันมีสองวิธีในการทำคือแบบ functional และ c-like เราสามารถใช้ได้ทั้งแบบ functional และ c-like ข้อแตกต่างของรูปแบบการใช้งานของมันเป็นดังนี้:double n = 10.3; float m = 5.5; int x = int (n); // functional int y = (int) n; // c-likeใน ตัวอย่างนี้ แสดงให้คุณเห็นวิธีการแปลงข้อมูลโดยใช้ทั้งสองวิธี วิธี functional นั้นเป็นการทำงานเหมือนฟังก์ชันโดยจะมีชื่อฟังก์ชันที่คุณเห็นเป็น
int()
และมีอากิวเมนต์เป็นตัวเลขที่เราต้องการแปลง วิธีที่สองคือ c-like เราใช้ประเภทของข้อมูลที่ต้องการแปลงล้อมรอบด้วยวงเล็บ (int)
และตามด้วยค่าหรือตัวแปร ตัวอย่างเพิ่มเติมfloat a = (float) (10 / 4); // 2 float b = (float) 10 / 4; // 2.5 float c = 10.0 / 4; // 2.5มาพิจารณาตัวอย่างด้านบน คำสั่งแรกจะได้ผลลัพธ์ของ a เป็น 2 เพราะเราทำการหารตัวแปรของ integer สองตัวก่อนที่จะแปลงไปเป็น float ดังนั้นมันจึงได้ค่าเป็น integer อยู่แล้ว ยกเว้นในคำสั่งบรรทัดที่สองและสาม ลำดับความสำคัญของประเภทข้อมูลแบบ float และ double ทำให้การหารระหว่าง 10.0/4 เป็นทศนิยมได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น