C++ की विशेषताएं जो C# में अनुपस्थित हैं
C# और C++ दोनों ऑब्जेक्ट-ओरिएंटेड भाषाएं हैं, लेकिन उनके डिज़ाइन लक्ष्य अलग हैं। C# मैनेज्ड कोड, सेफ्टी और उत्पादकता पर केंद्रित है, जबकि C++ लो-लेवल कंट्रोल और मल्टीपल इनहेरिटेंस देता है।
मुख्य अंतर
| विशेषता | C++ | C# |
|---|---|---|
| मल्टीपल इनहेरिटेंस (क्लासेस) | समर्थित | नहीं (केवल एक बेस क्लास; इंटरफेसेस के माध्यम से मल्टीपल इम्प्लीमेंटेशन) |
| मैन्युअल मेमोरी मैनेजमेंट | हां (new/delete, स्मार्ट पॉइंटर्स) | नहीं (गार्बेज कलेक्शन स्वचालित) |
| स्टैंडअलोन नेटिव एक्जीक्यूटेबल | हां | नहीं (.NET रनटाइम आवश्यक; Native AOT से आंशिक समर्थन) |
| स्विच स्टेटमेंट में स्ट्रिंग | नहीं (केवल इंटीग्रल टाइप्स) | हां (C# 7+ में पैटर्न मैचिंग के साथ) |
| प्लेटफॉर्म इंडिपेंडेंस | हां (सभी प्रमुख OS) | मुख्यतः Windows (.NET Core/.NET 5+ क्रॉस-प्लेटफॉर्म है) |
| पॉइंटर्स और पॉइंटर अंकगणित | पूर्ण समर्थन | केवल unsafe कॉन्टेक्स्ट में सीमित |
| डिस्ट्रक्टर्स (निर्धारक) | हां (~Class()) | नहीं (फाइनलाइज़र ~Class() नॉन-डिटरमिनिस्टिक) |
| टेम्पलेट्स (टेम्पलेट मेटाप्रोग्रामिंग) | हां | जेनेरिक्स (रनटाइम, कम शक्तिशाली) |
| डिफ़ॉल्ट आर्गुमेंट्स | हां | हां (C# 4+ में ऑप्शनल पैरामीटर्स) |
कॉन्स्ट करेक्टनेस (const मेथड्स) | हां | नहीं (readonly फील्ड्स, init प्रॉपर्टीज) |
C# में जो C++ में नहीं
- गार्बेज कलेक्शन, रिफ्लेक्शन, एट्रिब्यूट्स, डेलीगेट्स/इवेंट्स, LINQ, async/await, पैटर्न मैचिंग, रिकॉर्ड्स, नल कंडीशनल ऑपरेटर्स।
निष्कर्ष
C# सुरक्षा, उत्पादकता और मैनेज्ड रनटाइम चुनता है; C++ कंट्रोल, प्रदर्शन और नेटिव इंटरऑप चुनता है। आधुनिक .NET (Core/5+) क्रॉस-प्लेटफॉर्म है और Native AOT के साथ स्टैंडअलोन एक्जीक्यूटेबल्स का समर्थन करता है।