सी# बनाम C++: उनके बीच अंतर
सी# और के बीच मुख्य अंतर C++
- C++ एक निम्न स्तरीय प्रोग्रामिंग भाषा है जो अपनी आधार भाषा C में ऑब्जेक्ट-ओरिएंटेड विशेषताएं जोड़ती है जबकि C# एक उच्च स्तरीय भाषा है।
- C++ मशीन कोड तक संकलित होता है, जबकि C# CLR (कॉमन लैंग्वेज रनटाइम) तक संकलित होता है, जिसे ASP.NET में JIT द्वारा व्याख्यायित किया जाता है।
- C++ एक ऑब्जेक्ट-ओरिएंटेड भाषा है जबकि C# को घटक-ओरिएंटेड प्रोग्रामिंग भाषा माना जाता है।
- In C++ आपको मेमोरी को मैन्युअल रूप से प्रबंधित करना होगा जबकि C# एक वर्चुअल मशीन में चलता है, जो मेमोरी प्रबंधन स्वचालित रूप से करता है।
- In C++ विकास को किसी विशिष्ट वास्तुकला का पालन करना चाहिए और पोर्टेबल होना चाहिए, जबकि C# विकास सरल, आधुनिक, सामान्य प्रयोजन, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा होना चाहिए।
एचएमबी क्या है? C++?
C++ एक कंप्यूटर प्रोग्रामिंग भाषा है जिसमें सी प्रोग्रामिंग भाषा के साथ-साथ सिमुला67 (एक प्रथम ऑब्जेक्ट ओरिएंटेड भाषा) की विशेषता शामिल है। C++ क्लास और ऑब्जेक्ट्स की अवधारणा पेश की।
यह उच्च और निम्न-स्तरीय भाषा की विशेषताओं को समाहित करता है। इसलिए, इसे एक मध्यवर्ती स्तर की भाषा के रूप में देखा जाता है। पहले इसे “C with classes” कहा जाता था क्योंकि इसमें C भाषा के सभी गुण मौजूद थे।
C # क्या है?
सी-शार्प द्वारा विकसित एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है Microsoft जो .Net फ्रेमवर्क पर चलता है। इसमें मजबूत टाइपिंग, अनिवार्य, घोषणात्मक, ऑब्जेक्ट-ओरिएंटेड (क्लास-आधारित) और घटक-उन्मुख प्रोग्रामिंग जैसी विशेषताएं हैं। इसे द्वारा विकसित किया गया था Microsoft .NET प्लेटफ़ॉर्म के भीतर.
"सी शार्प" नाम संगीत नोटेशन से प्रेरित था। यहाँ '#' चिन्ह यह दर्शाता है कि लिखित नोट को पिच में एक सेमीटोन ऊँचा बनाया जाना चाहिए।
का इतिहास C++
C++ भाषा को एटी एंड टी बेल लेबोरेटरीज में बजरने स्ट्रॉस्ट्रप ने विकसित किया था। स्ट्रॉस्ट्रप सी के प्रबल समर्थक थे और सिमुला67 के प्रशंसक थे। वह दोनों भाषाओं की सर्वश्रेष्ठता को मिलाना चाहते थे। उनका लक्ष्य एक ऐसी भाषा बनाना था जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सुविधाओं का समर्थन करती हो और फिर भी सी की शक्ति को बरकरार रखती हो। इसका परिणाम यह हुआ C++.
C# का इतिहास
एंडर्स हेजल्सबर्ग C# भाषा विकास में मुख्य योगदानकर्ता हैं। 1999 में, उन्होंने एक नई भाषा विकसित करने के लिए एक टीम बनाई जिसे तब "कूल" कहा जाता था। इस परियोजना को जुलाई 2000 में .Net डेवलपर्स कॉन्फ्रेंस में मंजूरी दी गई और इसकी घोषणा की गई। बाद में भाषा का नाम बदलकर C# कर दिया गया।
के सिद्धांत C++ विकास
- कार्यक्रम सरल, वस्तु-उन्मुख और समझने में आसान होना चाहिए
- विकास कार्य सुदृढ़ एवं सुरक्षित वातावरण में किया जाना चाहिए।
- कोड को विशिष्ट आर्किटेक्चर का पालन करना चाहिए और पोर्टेबल होना चाहिए।
- कोड आसानी से “व्याख्या योग्य और गतिशील” होना चाहिए
C# विकास के सिद्धांत
- यह सरल, आधुनिक, सामान्य प्रयोजन, वस्तु-उन्मुख होना चाहिए प्रोग्रामिंग भाषा.
- भाषा और कार्यान्वयन को निम्नलिखित के लिए समर्थन प्रदान करना चाहिए सॉफ्टवेयर इंजीनियरिंग सिद्धांतों
- C# होस्टेड और एम्बेडेड दोनों प्रकार के सिस्टम के लिए अनुप्रयोग बनाने के लिए एक आदर्श विकल्प है।
अब इस C# बनाम C++ ट्यूटोरियल, आइए सी शार्प बनाम के बीच प्रमुख अंतर को समझते हैं C++.
के बीच अंतर C++ और सी#
C# और C# के बीच मुख्य अंतर निम्नलिखित है C++:
प्राचल | C++ | C# |
---|---|---|
भाषा का प्रकार | C++ एक निम्न स्तरीय और प्लेटफ़ॉर्म तटस्थ प्रोग्रामिंग भाषा है। | C# एक उच्च स्तरीय भाषा है। |
संकलन | C++ मशीन कोड तक संकलित करता है | C# को CLR (कॉमन लैंग्वेज रनटाइम) तक 'संकलित' किया जाता है, जिसे ASP.NET में JIT द्वारा व्याख्यायित किया जाता है |
स्मृति प्रबंधन | In C++यदि आप गतिशील रूप से ऑब्जेक्ट आवंटित करते हैं, तो आपको मेमोरी को मैन्युअल रूप से प्रबंधित करने की आवश्यकता है। | C# मेमोरी प्रबंधन स्वचालित रूप से चलाता है |
एकाधिक उत्तराधिकार | C++ बहुविध उत्तराधिकार का समर्थन करें | C# एकाधिक वंशानुक्रम का समर्थन नहीं करता है। |
कठिनाई का स्तर | C++ इसमें अधिक जटिल विशेषताएं शामिल हैं। | C# में कोई जटिल विशेषताएँ नहीं हैं। इसमें एक सरल पदानुक्रम है और इसे समझना काफी आसान है। |
डिफ़ॉल्ट एक्सेस विनिर्देशक | सार्वजनिक C++ स्ट्रक्चर के लिए। कक्षाओं के लिए निजी | C# .net में निजी. |
मंच | C++ यह एक ऐसी भाषा है जो सभी तरह के प्लैटफ़ॉर्म पर चलती है। यह यूनिक्स और लिनक्स सिस्टम पर भी समान रूप से लोकप्रिय है। | सी#, हालांकि मानकीकृत है, लेकिन विंडोज़ के बाहर इसे शायद ही कभी देखा जाता है। |
स्टैंडअलोन अनुप्रयोग | C++ स्टैंडअलोन अनुप्रयोग बना सकते हैं. | C# एक स्टैंडअलोन अनुप्रयोग नहीं बना सकता। |
वस्तु के उन्मुख | C++ यह एक पूर्णतः ऑब्जेक्ट ओरिएंटेड भाषा नहीं है। | C# एक शुद्ध ऑब्जेक्ट-ओरिएंटेड भाषा है। |
बाउंड जाँच | सरणियों की बाउंड जाँच का समर्थन नहीं करता है। | सरणियों की बाउंड जाँच का समर्थन करता है। |
कचरा इकठा करना | C++ कचरा संग्रहण का समर्थन नहीं करता. | C# कचरा संग्रहण का समर्थन करता है। |
एकाधिक वंशानुक्रम | C++ बहुविध विरासत का समर्थन करता है. | C# एकाधिक वर्ग विरासत की पेशकश नहीं करता है। |
फ़ोरैच लूप | का पुराना संस्करण C++ प्रत्येक लूप का समर्थन नहीं करता है। (रेंज-आधारित फॉर लूप इन C++ तब से जोड़ा गया है C++ 11) | C# प्रत्येक लूप का समर्थन करता है। |
पॉइंटर्स का उपयोग | आप प्रोग्राम में कहीं भी पॉइंटर्स का उपयोग कर सकते हैं। | आप पॉइंटर का उपयोग केवल असुरक्षित मोड में ही कर सकते हैं। |
के लिए प्रयुक्त | गेमिंग में व्यापक रूप से उपयोग किया जाता है। | C# प्रोग्रामिंग का उपयोग बनाने के लिए किया जा सकता है Windows, मोबाइल और कंसोल अनुप्रयोग। |
बाइनरी का आकार | C++ बहुत अधिक हल्का है. | C# में बहुत अधिक ओवरहेड है और इसे संकलित करने से पहले लाइब्रेरीज़ को शामिल किया जाना चाहिए। |
परियोजनाओं का प्रकार | C++ प्रोग्रामर आमतौर पर उन अनुप्रयोगों पर ध्यान केंद्रित करते हैं जो सीधे हार्डवेयर के साथ काम करते हैं या जिन्हें अन्य भाषाओं की तुलना में बेहतर प्रदर्शन की आवश्यकता होती है। | C# का उपयोग आधुनिक ऐप विकास के लिए किया जाता है। |
संकलक चेतावनी | C++ आपको लगभग कुछ भी करने की अनुमति देता है बशर्ते वाक्यविन्यास सही हो। इसलिए, यह लचीली भाषा है, लेकिन आप ऑपरेटिंग सिस्टम को गंभीर नुकसान पहुंचा सकते हैं। | C# अत्यधिक सुरक्षित है, क्योंकि यदि आप अनजाने में ऐसा कोड लिख देते हैं जिससे नुकसान हो सकता है तो इसका कंपाइलर त्रुटियां और चेतावनियां देगा। |
संकलन परिणाम | संकलन के बाद, C++ कोड को मशीन कोड में परिवर्तित किया जाता है। | संकलन के बाद, C# कोड को मध्यवर्ती भाषा कोड में परिवर्तित कर दिया जाता है। |
स्विच कथन | In C++ स्विच स्टेटमेंट में, परीक्षण चर एक स्ट्रिंग नहीं हो सकता। | C# में स्विच स्टेटमेंट एक स्ट्रिंग हो भी सकता है और नहीं भी। |