Như chúng ta đã biết một số tính năng cơ bản của ngôn ngữ lập trình hướng đối tượng là Tính kế thừa, Tính đóng gói, Tính đa hình. Bất kỳ ngôn ngữ nào hỗ trợ đầy đủ các tính năng này đều được gọi là ngôn ngữ lập trình hướng đối tượng. Một số ngôn ngữ như C ++ hỗ trợ ba ngôn ngữ này nhưng không đầy đủ, vì vậy chúng là ngôn ngữ hướng đối tượng một phần. Hãy cùng chúng tôi xem lý do tại sao C ++ không được gọi là ngôn ngữ hướng đối tượng hoàn toàn.
- Trong C ++, chúng ta cần hàm main () để bắt đầu thực thi, nhưng trong C ++, các hàm chính không có bên trong lớp. Vì vậy, chúng ta cũng có thể viết mã mà không cần sử dụng lớp trong C ++. Một số ngôn ngữ OOP như JAVA, nó cần một lớp giống như tên tệp, chức năng chính hiện diện bên trong đó.
- Trong C ++, chúng ta có thể sử dụng các biến toàn cục. Điều đó có thể được truy cập từ bất cứ đâu. Nó không hoàn thiện quyền riêng tư đối với dữ liệu, vì không ai có thể bị hạn chế truy cập và sửa đổi những dữ liệu đó, vì vậy nó đảm bảo tính đóng gói một phần. Trong JAVA, chúng ta có thể sử dụng các biến trong lớp và cũng có thể sử dụng công cụ xác định quyền truy cập trên chúng.
- C ++ có khái niệm về hàm bạn bè. Sử dụng chức năng kết bạn, chúng ta có thể truy cập các thành viên riêng tư và được bảo vệ của một lớp. Nó cũng vi phạm khái niệm OOL. Java không hỗ trợ các chức năng kết bạn trong đó.