Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำไม C++ ถึงเป็นภาษา Object-Oriented แบบบางส่วน (Partially OOP)

เหตุผลที่ C++ ไม่ใช่ Pure OOP

แม้ C++ จะรองรับ 3 ศีลของ OOP ได้แก่ Inheritance, Encapsulation, Polymorphism แต่ไม่ได้รองรับอย่างเต็มที่ ทำให้เป็น "Partially Object-Oriented"

1. ฟังก์ชัน main() ไม่บังคับอยู่ใน Class

ใน C++ ฟังก์ชัน main() อยู่นอก Class สามารถเขียนโค้ดได้โดยไม่ต้องสร้าง Class เลย (ต่างจาก Java ที่บังคับ main() ต้องอยู่ใน Class)

2. Global Variables

C++ รองรับ Global Variables ที่เข้าถึงได้จากทุกที่ ไม่มีการควบคุมการเข้าถึง (Access Control) ทำให้ Encapsulation ไม่สมบูรณ์ (Java ใช้ access specifier ใน Class)

3. Friend Functions

C++ มี Friend Functions ที่สามารถเข้าถึง private/protected members ของ Class อื่นได้ ซึ่งละเมิดหลักการ Encapsulation (Java ไม่มี friend functions)

สรุป

C++ เป็น Multi-paradigm Language รองรับทั้ง Procedural และ OOP ให้ความยืดหยุ่นสูงสุด แต่犠牲ความบริสุทธิ์ของ OOP