ฟังก์ชั่นเสมือนจริงและคลาสนามธรรม
ฟังก์ชันเสมือนแท้ คือฟังก์ชันเสมือนที่ไม่มีตัวฟังก์ชัน ไม่มีร่างกายทำงานหมายความว่าอย่างไร? นี่คือฟังก์ชันที่กำหนดไว้ดังนี้:
ชื่อฟังก์ชันส่งคืนค่าเสมือน (พารามิเตอร์อย่างเป็นทางการ) = 0;
อย่างที่คุณเห็น คำจำกัดความของฟังก์ชันเสมือนและฟังก์ชันเสมือนนั้นเหมือนเดิม โดยมีการเพิ่ม =0 ต่อท้าย บ่งชี้ว่าไม่มีเนื้อความของฟังก์ชัน นี่เป็น ฟังก์ชันเสมือนล้วนๆ คลาสที่มีฟังก์ชันเสมือนล้วนๆ คือ คลาสนามธรรม คลาสนามธรรมมีฟังก์ชันเสมือนบริสุทธิ์อย่างน้อยหนึ่งฟังก์ชัน
การมีอยู่ของคลาสนามธรรมคือการจัดเตรียมอินเทอร์เฟซที่เป็นนามธรรมสูงและเป็นหนึ่งเดียวให้กับโลกภายนอก จากนั้นใช้วิธีการที่แตกต่างกันผ่านฟีเจอร์โพลีมอร์ฟิก นี่เป็นหนึ่งในแนวคิดหลักของการออกแบบเชิงวัตถุ C++ และวิศวกรรมซอฟต์แวร์
ลักษณะ ของคลาสนามธรรมสรุปได้ดังนี้:
1. คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ของวัตถุได้ สามารถใช้เป็นคลาสพื้นฐานเพื่ออนุญาตให้คลาสที่ได้รับมาทำหน้าที่เสมือนอย่างแท้จริงในนั้น จากนั้นจึงสร้างอินสแตนซ์และใช้งานมัน
2. คลาสนามธรรมที่ได้รับยังคงสามารถเติมเต็มฟังก์ชันเสมือนจริงในคลาสพื้นฐานได้ไม่สมบูรณ์ และยังคงได้รับมาในรูปแบบคลาสนามธรรมต่อไป จนกว่าจะให้คำจำกัดความของฟังก์ชันเสมือนล้วนๆ ทั้งหมด มันจะกลายเป็นคลาสที่เป็นรูปธรรมและไม่สามารถสร้างอินสแตนซ์ของอ็อบเจ็กต์ได้
3. เนื่องจากคลาสนามธรรมนั้นเป็นนามธรรมและไม่สามารถรวบรวมได้ จึงไม่สามารถใช้เป็นประเภทพารามิเตอร์ ค่าส่งคืน หรือประเภทคาสต์ได้
4. ดำเนินการต่อด้วยรายการที่สาม คลาสนามธรรมสามารถกำหนดตัวชี้หรือประเภทการอ้างอิงที่ชี้ไปยังคลาสที่ได้รับเพื่อให้ได้คุณสมบัติโพลีมอร์ฟิก