C++ Internals หมายถึงวิธีการทำงานของคอมไพเลอร์ C++ ในการคอมไพล์โค้ด .cpp และให้ผลลัพธ์ออกมา C++ เป็นภาษาโปรแกรมมิ่งยอดนิยมที่ใช้เขียนซอฟต์แวร์ระบบ (system software) เป็นส่วนขยายของภาษา C C เป็นภาษาที่คอมไพล์ (compiled language) คอมไพเลอร์ C++ คอมไพล์โค้ด C++ เพื่อสร้างไฟล์อ็อบเจ็กต์หรือไฟล์รันได้ (executable file) ไฟล์รันหรือไฟล์ไบนารีมีคำสั่งเครื่อง (machine executable instructions) และข้อมูลเมตาของคำสั่งเครื่อง
วิธีทั่วไปในการคอมไพล์โปรแกรม C++ คือการรันคอมไพเลอร์บนโค้ด C++ คอมไพเลอร์จะสร้างคำสั่งเครื่องซึ่งเป็นชุดคำสั่งที่ CPU รองรับ หมายความว่าคอนเซปต์ Object Oriented ถูกนำมาใช้งานโดยคำสั่งเครื่อง คอมไพเลอร์ C++ ต่างๆ อาจใช้กลยุทธ์ต่างกันและเขียนด้วยภาษาต่างกัน แตความแตกต่างไม่มากนักและมีรูปแบบทั่วไปที่คอมไพเลอร์ทุกตัวปฏิบัติตาม
ผู้ที่ต้องการเข้าใจการคอมไพล์โค้ดในคอมไพเลอร์ ควรเข้าใจ C++ Internals การเข้าใจการทำงานของคอมไพเลอร์บ่อยครั้งช่วยให้คุณเขียนโค้ดที่ดีขึ้น
นักพัฒนาและโปรแกรมเมอร์ที่เขียนโค้ดแบบ mix-mode (C, C++, assembly) ควรรู้เรื่องเหล่านี้ จะช่วยได้มาก
กระบวนการสำคัญบางอย่างของ C++ Internals ได้แก่
- Function Overloading − ให้หลายคำนิยามกับชื่อเดียวกัน
- Class − เอนทิตีที่รวมข้อมูลและฟังก์ชันที่เกี่ยวข้องไว้ด้วยกัน
- Structure − เอนทิตีที่เก็บข้อมูลหลายชนิดข้อมูล
- Constructor − ฟังก์ชันเริ่มต้นของคลาสที่ถูกเรียกเมื่อสร้างอ็อบเจ็กต์
- Destructor − ฟังก์ชันเริ่มต้นของคลาสที่ถูกเรียกเมื่อทำลายอ็อบเจ็กต์
- Inheritance − แนวคิดการใช้สมาชิกของคลาสหนึ่งโดยอีกคลาสหนึ่ง
- Multiple Inheritance (Multiple Base Classes) − คลาสเดียวสืบทอดจากมากกว่าหนึ่ง base class
- Multilevel Inheritance − A สืบทอด B ที่สืบทอด C
- Multiple Base Classes − เรียกอีกอย่างว่า multiple inheritance
- Virtual functions − ฟังก์ชันที่ถูกนิยามในคลาสลูก
- Virtual Base Class − ป้องกันอินสแตนซ์ซ้ำของ base class เดียวกัน