सी ++ बनाम ऑब्जेक्टिव सी के बीच मतभेद
सी ++ बनाम ऑब्जेक्टिव सी, सी ++ एक ऑब्जेक्ट ओरिएनटेड और सामान्य ऑब्जेक्टिव प्रोग्रामिंग भाषा है। यह प्रक्रियात्मक, बहु-प्रतिमान, कार्यात्मक और पहली बार वर्ष 1985 में दिखाई दिया था। इसे बजेर्न स्ट्राउस्ट्रप द्वारा डिजाइन किया गया था और बेल लैब्स में विकास करना शुरू कर दिया गया था। फ़ाइल नाम एक्सटेंशन .सी, .सीसी, .सीपीपी, .सी ++, .एच,.एचएच, .एचपीपी आदि जैसे हैं। यह ज्यादातर सिस्टम प्रोग्रामिंग, एम्बेडेड प्रोग्रामिंग और बड़े जटिल सिस्टम के लिए उपयोग किया जाता है। सी ++ को वर्ष 2017 में प्रकाशित नवीनतम संस्करण के साथ आईएसओ (मानकीकरण के लिए अंतर्राष्ट्रीय संगठन) द्वारा मानकीकृत किया गया था । जावा, सी # जैसी कई प्रोग्रामिंग भाषाएं सी ++ से प्रभावित थीं। जावा और सी के बाद यह तीसरी सबसे अधिक इस्तेमाल की जाने वाली प्रोग्रामिंग भाषा रही है ।
ऑब्जेक्टिव सी ऑब्जेक्ट ओरिएनटेड और सामान्य ऑब्जेक्टिव प्रोग्रामिंग भाषा और सी प्रोग्रामिंग भाषा के लिए छोटे टॉक स्टाइल मैसेजिंग भी है। यह प्रतिबिंबित, वर्ग आधारित है और इसे स्टैपस्टोन नाम की एक कंपनी में ब्रैड कॉक्स और टॉम लव द्वारा डिजाइन किया गया था और पहली बार वर्ष 1984 में दिखाई दिया था। यह स्थिर और गतिशील टाइपिंग प्रोग्रामिंग भाषा दोनों है। यह क्रॉस-प्लेटफार्म अनुप्रयोगों का समर्थन करता है और छोटे टॉक और सी प्रोग्रामिंग भाषा से प्रभावित था। ऑब्जेक्टिव सी सी प्रोग्रामिंग भाषा का एक सुपरसेट है। फ़ाइल एक्सटेंशन में आम तौर पर .एम या .एच शामिल होता है चाहे यह प्रोग्राम फ़ाइल या हेडर फ़ाइल हो।
सी ++ बनाम ऑब्जेक्टिव सी इन्फोग्राफिक्स
नीचे सी ++ बनाम ऑब्जेक्टिव सी के बीच शीर्ष 9 अंतर है
सी ++ बनाम ऑब्जेक्टिव सी के बीच महत्वपूर्ण अंतर
सी ++ बनाम ऑब्जेक्टिव सी दोनों बाजार में लोकप्रिय विकल्प हैं; आइए सी ++ बनाम ऑब्जेक्टिव सी के बीच कुछ प्रमुख मतभेदों पर चर्चा करें:
- सी ++ एक मध्यम स्तर की भाषा है जो विभिन्न क्रॉस-प्लेटफार्म ऑपरेटिंग सिस्टम जैसे विंडोज, यूनिक्स, मैकिंतोश ओएस आदि पर चल रही है, जबकि ऑब्जेक्टिव सी सामान्य ऑब्जेक्टिव ऑब्जेक्ट ओरिएनटेड प्रोग्रामिंग भाषा है जो ऐप्पल द्वारा अपने ऑपरेटिंग सिस्टम और एपीआई कोको आदि में उपयोग की जाती है। ।
- सी ++ डेटा छिपाने, एनकॅप्सुलेशन , विरासत और पॉलीमॉर्फिसम का समर्थन करता है और मानक टेम्पलेट पुस्तकालय (एसटीएल) जैसे मुख्य कोर घटक भी है जबकि ऑब्जेक्टिव सी एसटीएल को छोड़कर सी ++ के समान सुविधाओं का भी समर्थन करता है और इसमें आधारभूत ढांचे शामिल हैं।
- सी ++ पोर्टेबिलिटी का समर्थन करता है जिसमें एएनएसआई (अमेरिकन नेशनल स्टैंडर्ड इंस्टीट्यूट) मानक है जिसे प्रमुख सी ++ आईडीई निर्माताओं द्वारा समर्थित किया जा रहा है जबकि ऑब्जेक्टिव सी में अलग-अलग डेटा प्रकार हैं, टोकिन्स पहचानकर्ताओं, घोषणाओं और असाइनमेंट और कॉन्स्टेंट को परिभाषित करने के लिए प्री-प्रोसेसर को पहचानने के लिए टोकन हैं।
- सी ++ विभिन्न ऑपरेटरों जैसे अंकगणितीय ऑपरेटरों, लॉजिकल ऑपरेटर्स, बिटवाई ऑपरेटर्स, रिलेशनल ऑपरेटर, असाइनमेंट ऑपरेटर, और विविध ऑपरेटर और ऑब्जेक्टिव सी का समर्थन करता है, उसी ऑपरेटर और प्री-प्रोसेसर का भी समर्थन करता है जो संकलन प्रक्रिया का हिस्सा नहीं हैं।
- सी ++ फ़ाइलें और स्ट्रीम, अपवाद हैंडलिंग, गतिशील मेमोरी, नेमस्पेस, टेम्पलेट्स, प्री-प्रोसेसर, और मल्टी-थ्रेडिंग इत्यादि का समर्थन करता है जबकि ऑब्जेक्टिव सी पोसिंग, एक्सटेंशंस, डायनामिक बाध्यकारी, प्रोटोकॉल, समग्र ऑब्जेक्ट्स, मेमोरी मैनेजमेंट और एन्युमरेशन का समर्थन करता है।
- सी ++ में नामस्थान, संदर्भ, टेम्पलेट्स, अंतर्निहित विधि ओवरलोडिंग जैसी विशेषताएं हैं जबकि ऑब्जेक्टिव सी गतिशील प्रेषण, एक्सेसर्स की स्वत: पीढ़ी को सदस्य चर और गुणों तक पहुंचने की अनुमति देता है और एक विधि और नाम को समान पहचानकर्ता साझा करने की अनुमति देता है।
- सी ++ में, एक विधि को कॉल करने का संकलन समय पर तय किया जाएगा जबकि ऑब्जेक्टिव सी में, एक विधि को कॉल करने पर रनटाइम पर निर्णय लिया जाएगा और ऑब्जेक्टिव सी में विशेष रूप से मौजूद वर्ग जैसी विधियों को जोड़ने या बदलने जैसी विशेष सुविधाएं भी हैं।
- सी ++ में, ऑब्जेक्ट्स शून्य हैं और उन सभी मामलों में सुरक्षित रूप से संभाला नहीं जा सकता है जहां एक डिफरेंस का उपयोग किया जाता है, फिर रन टाइम त्रुटि फेंक दी जाएगी जबकि ऑब्जेक्टिव सी में शून्य है जिसे सुरक्षित रूप से सुरक्षित वस्तुओं में सुरक्षित रूप से संदेशों को सुरक्षित रूप से संदेश भेजकर सुरक्षित रूप से संभाला जा सकता है।
- सी ++ में, ऑपरेटर ओवरलोडिंग समर्थित है और अधिक पोर्टेबल और सरल है जबकि ऑब्जेक्टिव सी डिफ़ॉल्ट पैरामीटर का समर्थन नहीं करता है लेकिन कई विधियों में हेरफेर द्वारा कार्यान्वित किया जा सकता है और निजी सदस्यों का भी समर्थन नहीं करता है।
- सी ++ में, ऑब्जेक्ट्स के ढेर पर रनटाइम के दौरान मेमोरी आवंटित की जाती है जबकि ऑब्जेक्टिव सी स्टैक-आधारित मेमोरी ऑब्जेक्ट्स का समर्थन नहीं करता है और ऑब्जेक्टिव सी में मेमोरी आवंटित करना बहुत महंगा है और यह वितरण के लिए सफल कार्यक्रम लिखने में महत्वपूर्ण भूमिका निभाता है कुशल अनुप्रयोगों।
- सी ++ में, क्लास ऑब्जेक्ट्स सामान्य रूप से घोषित किए जाते हैं और सामान्य ऑब्जेक्ट ओरिएनटेड प्रोग्रामिंग भाषाओं के समान होते हैं जबकि ऑब्जेक्टिव सी में एक समग्र ऑब्जेक्ट सुविधा होती है जिसमें एक ऑब्जेक्ट के अंदर एम्बेडेड ऑब्जेक्ट होता है, जिसका अर्थ है कि एक निजी क्लस्टर ऑब्जेक्ट मुख्य ऑब्जेक्ट में एम्बेड किया जाएगा कुछ आदिम तरीकों के साथ।
- सी ++ में, मानक पुस्तकालय में दो भाग होते हैं जो मानक फ़ंक्शन पुस्तकालय और ऑब्जेक्ट-ओरिएंटेड क्लास पुस्तकालय होते हैं जबकि ऑब्जेक्टिव सी में फास्ट एन्युमरेशन सुविधा होती है जहां संग्रह इस सुविधा के मुख्य घटक होते हैं।
सी ++ बनाम ऑब्जेक्टिव सी के बीच हेड टू हेड तुलना
नीचे सी ++ बनाम ऑब्जेक्टिव सी के बीच सबसे ज्यादा तुलना है
सी ++ बनाम ऑब्जेक्टिव सी के बीच तुलना का आधार | सी ++ | ऑब्जेक्टिव सी |
डिज़ाइन | यह ऑब्जेक्ट ओरिएनटेड और प्रक्रियात्मक होने के लिए डिज़ाइन किया गया था | इसे स्मॉलटाक मैसेजिंग फीचर के साथ ऑब्जेक्ट-ओरिएनटेड होने के लिए डिज़ाइन किया गया था। |
विरासत | यह कई विरासत की अनुमति देता है | यह एकाधिक विरासत की अनुमति नहीं देता है |
मिसाल | यह कार्यान्वित कार्यक्षमताओं को कॉल करने के तरीकों का उपयोग करता है | यह कार्यान्वित कार्यक्षमताओं को कॉल करने के लिए संदेशों का उपयोग करता है क्योंकि इसे स्मॉलटाक मैसेजिंग के आधार पर कार्यान्वित किया गया था |
कक्षाएं | सी ++ में स्ट्रक्चर और कक्षाएं समान हैं | ऑब्जेक्टिव सी में स्ट्रक्चर और कक्षाओं का अलग-अलग व्यवहार किया जाता है |
लाइसेंस | यह खुला स्त्रोत प्रोजेक्ट 2.0 है | यह जीपीएल (जनरल पब्लिक लाइसेंस) के तहत लाइसेंस प्राप्त है |
प्रकार | यह स्थैतिक टाइपिंग है | यह गतिशील टाइपिंग है |
बहुरूपता | संकलन समय पर सी ++ में पैरामैट्रिक बहुरूपता की जांच की जाती है | ऑब्जेक्टिव सी में पैरामैट्रिक बहुरूपता संकलन समय पर जांच की जाती है |
बूलियन ऑपरेटर्स | सी ++ सच, झूठा और बूल का उपयोग करता है | सी ++ हाँ, नहीं और बूल का उपयोग करता है |
टेम्पलेट्स | सी ++ में एसटीएल (मानक टेम्पलेट पुस्तकालय) पुस्तकालय हैं | ऑब्जेक्टिव सी टेम्पलेट पुस्तकालयों की कमी है |
निष्कर्ष
सी ++ एक प्रोग्रामिंग भाषा है जो ज्यादातर हार्डवेयर प्रोग्रामिंग और एम्बेडेड डिवाइसों के लिए आजकल उपयोग की जाती है और अधिकांश सिस्टम प्रोग्रामिंग में भी इसका उपयोग किया जा रहा है जहां बड़े सॉफ्टवेयर सिस्टम विकसित किए जा सकते हैं । ऑब्जेक्टिव सी का उपयोग ज्यादातर मैक या आईफोन जैसे ऐप्पल उत्पादों के लिए ओएस एक्स और आईओएस जैसे ऑपरेटिंग सिस्टम के विकास के लिए किया जाता है। ऑब्जेक्टिव सी का ज्यादातर ऐप्पल ऑपरेटिंग सिस्टम के लिए उपयोग किया जाता है और यह ऐप्पल उत्पादों के विकास तक ही सीमित है जबकि सी ++ खुला स्त्रोत है और अधिकांश हार्डवेयर और एम्बेडेड अनुप्रयोगों के लिए इसका उपयोग किया जा सकता है लेकिन प्रोग्रामिंग सुविधाओं और डेटा प्रबंधित होने के उपयोग में सुरक्षा में कमी है।
माइक्रोसॉफ्ट और अधिकांश आधुनिक अनुप्रयोगों के अधिकांश डेस्कटॉप अनुप्रयोगों के विकास के लिए सी ++ का उपयोग किया जा रहा है । ऑब्जेक्टिव सी का उपयोग स्विफ्ट अनुप्रयोगों को विकसित करने के लिए किया जाता है।
अनुशंसित आलेख
यह सी ++ बनाम ऑब्जेक्टिव सी के बीच शीर्ष अंतरों का एक मार्गदर्शक रहा है। यहां हम इन्फोग्राफिक्स और तुलना तालिका के साथ सी ++ बनाम ऑब्जेक्टिव सी कुंजी अंतरों पर भी चर्चा करते हैं। आप निम्न लेखों पर भी एक नज़र डाल सकते हैं –
- सी बनाम सी ++ प्रदर्शन
- सी # इंटरफेस बनाम सार कक्षा
- सी ++ बनाम जावा
- एएसपी.नेट बनाम .नेट