जैसा कि हम जानते हैं कि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज की कुछ बुनियादी विशेषताएं हैं इनहेरिटेंस, एनकैप्सुलेशन, पॉलीमॉर्फिज्म। कोई भी भाषा जो इन सुविधाओं का पूरी तरह से समर्थन करती है, उसे ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज के रूप में जाना जाता है। सी ++ जैसी कुछ भाषाएं इन तीनों का समर्थन करती हैं लेकिन पूरी तरह से नहीं, इसलिए वे आंशिक रूप से वस्तु उन्मुख भाषा हैं। आइए देखें कि C++ को पूरी तरह से ऑब्जेक्ट ओरिएंटेड भाषा के रूप में क्यों नहीं जाना जाता है।
- C++ में, हमें निष्पादन शुरू करने के लिए मुख्य () फ़ंक्शन की आवश्यकता होती है, लेकिन C++ में, मुख्य कार्य कक्षा के अंदर मौजूद नहीं होते हैं। तो हम C++ में क्लास का उपयोग किये बिना भी कोड लिख सकते हैं। जावा जैसी कुछ ओओपी भाषाएं, इसे फ़ाइल नाम के समान एक वर्ग की आवश्यकता होती है, मुख्य कार्य उसके अंदर मौजूद होता है।
- C++ में, हम ग्लोबल वेरिएबल्स का उपयोग कर सकते हैं। जिसे कहीं से भी एक्सेस किया जा सकता है। यह डेटा की गोपनीयता को पूर्ण नहीं करता है, क्योंकि किसी को भी उन डेटा तक पहुंचने और संशोधित करने के लिए प्रतिबंधित नहीं किया जा सकता है, इसलिए यह आंशिक रूप से एनकैप्सुलेशन सुनिश्चित करता है। जावा में, हम कक्षा में वेरिएबल्स का उपयोग कर सकते हैं, और उन पर एक्सेस स्पेसिफायर का भी उपयोग कर सकते हैं।
- C++ में फ्रेंड फंक्शन की अवधारणा है। मित्र कार्यों का उपयोग करके, हम एक वर्ग के निजी और संरक्षित सदस्यों तक पहुँच सकते हैं। यह OOL की अवधारणा का भी उल्लंघन करता है। जावा इसमें मित्र कार्यों का समर्थन नहीं करता है।