आइए पहले C# और C++ के बारे में जानें -
- C# एक सामान्य-उद्देश्य ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है।
- इसे एक शुद्ध ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा माना जाता है।
- इसे 'C शार्प' के रूप में उच्चारित किया जाता है।
- इसे माइक्रोसॉफ्ट में एंडर्स हेजल्सबर्ग और उनकी टीम द्वारा विकसित किया गया था।
- मेमोरी प्रबंधन गार्बेज कलेक्टर द्वारा स्वचालित रूप से किया जाता है।
- इसका कर्तव्य है कि एक बार इसका उद्देश्य पूरा हो जाने पर ऑब्जेक्ट को स्वचालित रूप से हटा दिया जाए।
- यह विंडोज विशिष्ट है, यानी इसका उपयोग सभी सिस्टम पर नहीं किया जा सकता।
- यह मल्टीपल इनहेरिटेंस का समर्थन नहीं करता।
- C# में पॉइंटर्स का उपयोग केवल अनसेफ मोड में किया जा सकता है।
- इसे हाई-लेवल भाषा माना जाता है।
- एक बार कोड संकलित हो जाने पर, यह इंटरमीडिएट भाषा में परिवर्तित हो जाता है।
- इसका उपयोग कंसोल एप्लिकेशन के साथ-साथ मोबाइल और विंडोज एप्लिकेशन विकसित करने के लिए किया जा सकता है।
- इसे समझना और काम करना आसान है, क्योंकि इसमें एक अच्छी तरह से परिभाषित क्लास हायरार्की है।
- कंपाइलर द्वारा एरे डेटा संरचना में बाउंड चेकिंग की जाती है।
- इसके कारण, जब कोई प्रोग्रामर अमान्य एरे इंडेक्स को एक्सेस करने का प्रयास करता है, तो इसका परिणाम संकलन त्रुटि होती है।
C++
- C++ एक स्टैटिकली टाइप्ड, मल्टी-पैराडाइम भाषा है।
- यह भी एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है।
- लेकिन यह एक शुद्ध ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा नहीं है क्योंकि इसमें कुछ प्रिमिटिव डेटा टाइप हैं।
- कोड संकलित होने के बाद, यह मशीन कोड में परिवर्तित हो जाता है, यानी सीधे लो-लेवल भाषा।
- प्रारंभ में, इसे C विथ क्लासेस के रूप में जाना जाता था। बाद में, इसे C++ में बदल दिया गया।
- इसे 'C प्लस प्लस' के रूप में उच्चारित किया जाता है।
- इसे AT & T बेल लेबोरेटरीज में ब्जार्ने स्ट्रॉस्ट्रप द्वारा विकसित किया गया था।
- C++ में मेमोरी प्रबंधन प्रोग्रामर/डेवलपर द्वारा मैन्युअल रूप से किया जाता है। वे एक ऑब्जेक्ट बनाते हैं, और उसके उपयोग और एक बार उपयोग समाप्त होने पर उसे नष्ट करने के लिए पूरी तरह से जिम्मेदार होते हैं।
- प्लेटफ़ॉर्म डिपेंडेंसी: C++ में कोड किसी भी प्लेटफ़ॉर्म पर चलाया जा सकता है।
- इसका उपयोग वहां किया जाता है जहां एप्लिकेशन को हार्डवेयर के साथ सीधे इंटरैक्ट करने की आवश्यकता होती है।
- मल्टीपल इनहेरिटेंस: C++ क्लासेस की मदद से मल्टीपल इनहेरिटेंस का समर्थन करता है। इसका मतलब है कि एक क्लास एक समय में एक से अधिक क्लास तक विस्तारित हो सकती है।
- C++ पॉइंटर्स का उपयोग प्रोग्राम में कहीं भी किया जा सकता है।
- इसका उपयोग आमतौर पर कंसोल एप्लिकेशन विकसित करने के लिए किया जाता है।
- कंपाइलर द्वारा बाउंड चेकिंग नहीं की जाती। जब कोई प्रोग्रामर अमान्य एरे इंडेक्स को एक्सेस करने का प्रयास करता है, तो इसका परिणाम संकलन त्रुटि नहीं होगी, यह केवल गलत आउटपुट दिखाएगा।
आइए अब अंतर देखें -
| C# | C++ |
|---|---|
| C# एक सामान्य-उद्देश्य ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। | C++ एक स्टैटिकली टाइप्ड, मल्टी-पैराडाइम भाषा है। |
| इसे एक शुद्ध ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा माना जाता है। | लेकिन यह एक शुद्ध ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा नहीं है क्योंकि इसमें कुछ प्रिमिटिव डेटा टाइप हैं। |
| मेमोरी प्रबंधन गार्बेज कलेक्टर द्वारा स्वचालित रूप से किया जाता है। | मेमोरी प्रबंधन प्रोग्रामर/डेवलपर द्वारा मैन्युअल रूप से किया जाता है। |
| यह मल्टीपल इनहेरिटेंस का समर्थन नहीं करता। | C++ क्लासेस की मदद से मल्टीपल इनहेरिटेंस का समर्थन करता है। |
| C# में पॉइंटर्स का उपयोग केवल अनसेफ मोड में किया जा सकता है। | C++ पॉइंटर्स का उपयोग प्रोग्राम में कहीं भी किया जा सकता है। |
| इसका उपयोग कंसोल एप्लिकेशन के साथ-साथ मोबाइल और विंडोज एप्लिकेशन विकसित करने के लिए किया जा सकता है। | इसका उपयोग आमतौर पर कंसोल एप्लिकेशन विकसित करने के लिए किया जाता है। |
| कंपाइलर द्वारा एरे डेटा संरचना में बाउंड चेकिंग की जाती है। | कंपाइलर द्वारा बाउंड चेकिंग नहीं की जाती। |