ภาษาซี++ เป็นภาษาโปรแกรมที่มีประสิทธิภาพซึ่งนำเสนอแอปพลิเคชันที่หลากหลายแก่ผู้ใช้ สิ่งสำคัญของภาษาโปรแกรม C++ คือความสามารถในการรองรับการระบุประเภทรันไทม์ เดอะ พิมพ์ เป็นหนึ่งในการระบุประเภทรันไทม์ที่ใช้กันอย่างแพร่หลายในโปรแกรม C++
หากคุณไม่รู้ว่าอะไร พิมพ์ อยู่ใน C ++ ทำตามคำแนะนำของบทความนี้
ตัวดำเนินการ typeid ใน C ++
เดอะ พิมพ์ เป็นโอเปอเรเตอร์ในตัวในภาษาโปรแกรม C++ ที่ช่วยให้ผู้ใช้สามารถกำหนดชนิดข้อมูลของตัวแปรในขณะรันไทม์ ค่าที่ส่งคืนโดย พิมพ์ เป็นประเภท “พิมพ์ข้อมูล “ ซึ่งให้รายละเอียดต่าง ๆ เกี่ยวกับประเภทของวัตถุ เป็นสิ่งสำคัญในกรณีที่โปรแกรมต้องดำเนินการหลายอย่างตามประเภทข้อมูลที่ใช้
ไวยากรณ์ของ typeid
ไวยากรณ์ของ พิมพ์ โอเปอเรเตอร์ในภาษา C++ เป็นดังนี้:
พิมพ์ ( พิมพ์ )
หรือ:
พิมพ์ ( ประสบการณ์ )
เดอะ พิมพ์ โอเปอเรเตอร์ใน C++ ยอมรับหนึ่งในสองพารามิเตอร์นี้
พิมพ์ : เมื่อเราต้องการทราบประเภทรันไทม์ของตัวแปรหรือวัตถุ เราจะใส่อาร์กิวเมนต์ประเภทภายใน พิมพ์ ผู้ประกอบการ ในกรณีนี้จำเป็นต้องใช้อาร์กิวเมนต์ประเภทเท่านั้น และข้อมูลประเภทรันไทม์จะถูกรวบรวมโดยไม่มีการประเมินเพิ่มเติมหรือการคำนวณล่วงหน้า
การแสดงออก : เมื่อเราต้องการรายละเอียดเกี่ยวกับประเภทรันไทม์ของนิพจน์ พารามิเตอร์นิพจน์จะได้รับภายใน พิมพ์ ผู้ประกอบการ ข้อมูลเกี่ยวกับประเภทรันไทม์จะใช้หลังจากนิพจน์ในพารามิเตอร์นี้ได้รับการประเมินแล้ว
เมื่อใช้กับ พิมพ์ จะให้ข้อมูลเกี่ยวกับประเภทที่สอดคล้องกับตัวระบุ เมื่อใช้กับนิพจน์ จะให้ข้อมูลเกี่ยวกับประเภทไดนามิกของวัตถุ
การใช้ตัวดำเนินการ typeid
เดอะ พิมพ์ สามารถใช้ตัวดำเนินการในลักษณะเหล่านี้ได้
1: เมื่อตัวดำเนินการทำหน้าที่เป็นตัวแปรของวัตถุ
เดอะ พิมพ์ ตัวดำเนินการสามารถใช้กับตัวถูกดำเนินการเมื่อทำหน้าที่เป็นตัวแปรของวัตถุ
#รวมถึง#รวม
ใช้เนมสเปซ std;
int หลัก ( ) {
int ฉัน;
ถ่าน ch;
ชั้นลอย;
ดับเบิลเดซิเบล;
Const type_info & type_i = typeid ( ฉัน ) ;
Const type_info & type_ch = typeid ( ช ) ;
Const type_info & type_fl = typeid ( ใน ) ;
Const type_info & type_db = typeid ( ฐานข้อมูล ) ;
ศาล << 'ประเภทของ int i คือ: ' << type_i.name ( ) ;
ศาล << ' \n ประเภทของตัวอักษร ch คือ: ' << type_ch.name ( ) ;
ศาล << ' \n ประเภทของชั้นลอยคือ: ' << type_fl.name ( ) ;
ศาล << ' \n ประเภทของ double db คือ: ' << type_db.name ( ) << ' \n ' ;
กลับ 0 ;
}
ในโค้ดข้างต้น เรากำลังประกาศตัวแปรที่แตกต่างกันสี่ตัว โดยแต่ละชนิดข้อมูลแยกกัน จากนั้นเรากำลังใช้ พิมพ์ ตัวดำเนินการกับตัวแปรเหล่านี้และพิมพ์ชนิดข้อมูลโดยใช้คำสั่ง cout
เอาต์พุต
2: เมื่อตัวถูกดำเนินการเป็นนิพจน์
เดอะ พิมพ์ นอกจากนี้ยังสามารถใช้ตัวดำเนินการในกรณีที่ตัวถูกดำเนินการเป็นนิพจน์
#รวมถึง#รวม
ใช้เนมสเปซ std;
int หลัก ( ) {
int ฉัน = 7 ;
ถ่าน ช = 'เอ' ;
ชั้นลอย = 42.4 ;
ดับเบิ้ล ดีบี = 4,279 ;
Const type_info & type_a = typeid ( ฉัน + ช ) ;
Const type_info & type_b = typeid ( ฉัน * ใน ) ;
Const type_info & type_c = typeid ( ฐานข้อมูล * ใน ) ;
Const type_info & type_d = typeid ( ผม+ฐานข้อมูล ) ;
ศาล << 'นิพจน์ i+ch : ' << type_a.name ( ) ;
ศาล << ' \n นิพจน์ i*fl : ' << type_b.name ( ) ;
ศาล << ' \n นิพจน์ db*fl : ' << type_c.name ( ) ;
ศาล << ' \n นิพจน์ i+db : ' << type_d.name ( ) ;
กลับ 0 ;
}
ในโค้ดข้างต้น เราเริ่มต้นตัวแปรสี่ตัวที่มีประเภทข้อมูลต่างกัน จากนั้นเราจะประเมินนิพจน์และคำนวณประเภทของมันโดยใช้ C++ พิมพ์ () ตัวดำเนินการ
เอาต์พุต
ข้อดีและข้อเสียของ typeid ใน C++
เดอะ พิมพ์ มีประโยชน์เมื่อเขียนโค้ดที่ทำงานกับออบเจกต์ที่ไม่รู้จักจนกว่าจะรันไทม์ ตัวอย่างเช่น สมมติว่าฟังก์ชันใช้ตัวชี้โมฆะเป็นพารามิเตอร์ ก็ใช้ได้ พิมพ์ เพื่อระบุว่าตัวชี้เป็น int หรือ double ซึ่งอาจส่งผลต่อวิธีการทำงานของฟังก์ชันอย่างมาก
นอกจากชื่อประเภทแล้ว ตัว “ พิมพ์ข้อมูล ” วัตถุยังมีรายละเอียดอื่น ๆ อีกมากมายเกี่ยวกับประเภท เหล่านี้รวมถึง:
- ไม่ว่าประเภทจะเป็นประเภทพื้นฐาน ประเภทตัวชี้ หรือประเภทที่ผู้ใช้กำหนดเอง
- ไม่ว่าจะเป็นประเภท 'const' หรือ 'volatile'
- พิจารณาว่าประเภทนั้นเป็นประเภทคลาสหรือไม่ และถ้าใช่ จะเป็นประเภทโพลีมอร์ฟิคหรือไม่
- ว่าประเภทนั้นเป็นประเภทอาร์เรย์หรือไม่ และถ้าใช่ มิติข้อมูลคืออะไร
- ระบุประเภทว่าเป็นประเภทอ้างอิงหรือไม่
เดอะ พิมพ์ ยังมีประโยชน์เมื่อต้องจัดการกับเทมเพลตและฟังก์ชันที่รับอาร์กิวเมนต์เป็นจำนวนตัวแปร โดยใช้ “ พิมพ์ ” โอเปอเรเตอร์ คุณสามารถดำเนินการเฉพาะประเภท ณ รันไทม์ เช่น การเลือกเทมเพลตหรือฟังก์ชันที่เหมาะสมที่จะใช้
ข้อเสียเปรียบประการหนึ่งที่เป็นไปได้ของ พิมพ์ คือมันค่อนข้างช้า โดยทั่วไปจะช้ากว่าการตรวจสอบประเภทอื่นๆ เช่น พารามิเตอร์เทมเพลตหรือการตรวจสอบประเภทเวลาคอมไพล์ เนื่องจากตรวจสอบประเภทของอ็อบเจ็กต์ระหว่างรันไทม์
บทสรุป
“ พิมพ์ ตัวดำเนินการ ” ใน C++ ให้ข้อมูลที่มีค่าเกี่ยวกับประเภทข้อมูลของตัวแปรหรือวัตถุ อนุญาตให้โปรแกรมเมอร์ดำเนินการเฉพาะประเภทที่รันไทม์ และสามารถใช้ได้เมื่อตัวถูกดำเนินการเป็นตัวแปร หรือเมื่อตัวถูกดำเนินการเป็นนิพจน์