शुरुआती लोगों के लिए एक ज्ञापन जो C और C++ के बीच अंतर को लेकर भ्रमित हैं

प्रोग्रामिंग के बारे में बात करें Programming

C भाषा और C++ में क्या अंतर है? मुझे किसका अध्ययन करना चाहिए?

यह सी++ है। आपको निम्नलिखित को पढ़ने की ज़रूरत नहीं है, इसलिए मैं YouTube पर एक शुरुआती वीडियो देखने, जल्दी से एक माहौल बनाने और आज ही शुरुआत करने की सलाह देता हूं।

…पढ़ने के लिए आपका शुक्रिया।

मैं ऐसा इसलिए कह रहा हूं क्योंकि C++ को विभिन्न पहलुओं में बहुत अधिक समर्थन प्राप्त है। यदि हम इसकी तुलना एक कार से करें, तो एक स्वचालित कार C++ होगी और एक मैन्युअल कार C होगी। यदि आप नौसिखिया हैं और कुछ परेशानी का सामना कर रहे हैं, तो C++ चुनें।

जापान और अमेरिका में अधिकांश कारें एटी हैं। इसका कारण सिर्फ इतना है कि इसे चलाना आसान है। हालाँकि, यूरोप में मैनुअल कारें अभी भी आदर्श हैं। स्वचालित कारों की हिस्सेदारी 20% से भी कम है। अधिकांश रेसर मैनुअल कारों का भी उपयोग करते हैं।

दोनों के अपने फायदे हैं. और जिस तरह एक मैनुअल कार का ड्राइवर आसानी से एक स्वचालित कार चला सकता है, उसी तरह एक व्यक्ति जो C भाषा का उपयोग करता है वह अपेक्षाकृत कम समय में आसानी से C++ का उपयोग कर सकता है, लेकिन यह विपरीत के लिए सच नहीं है। एक कार की तरह, इसमें केवल गियर बदलने और एक्सेलेरेटर कार्य के लिए ही नहीं, बल्कि विभिन्न तरीकों से प्रशिक्षण के लिए भी समय की आवश्यकता होती है।

क्या C भाषा आवश्यक है? क्या यह सब C++ नहीं है?

थोड़ा और आगे जाने पर, C++ C को विस्थापित नहीं कर पाने का कारण यह है कि C अभी भी बुनियादी बातों के मामले में एक मजबूत भाषा है।

सिस्टम विकास और एम्बेडेड सिस्टम जैसे क्षेत्रों में सी एक आवश्यक भाषा के रूप में राज करती है, जिसमें हार्डवेयर के सीधे हेरफेर की आवश्यकता होती है। उदाहरण के लिए, यदि आप Linux या Windows जैसे किसी ऑपरेटिंग सिस्टम के लिए ड्राइवर बनाना चाहते हैं, और आप केवल C++ जानते हैं, तो यह काम नहीं करेगा।

C का उपयोग बुनियादी प्रोग्रामिंग के लिए किया जाता है, और C++ का उपयोग उन्नत प्रोग्रामिंग के लिए किया जाता है।

रुको, क्या तुम इसके विपरीत नहीं कह रहे हो? आप ऐसा सोच सकते हैं. लेकिन ये गलत नहीं है.

उदाहरण के लिए, यदि आप रोबोटिक्स के क्षेत्र में एक छात्र हैं, जिसे उन्नत भौतिकी सिमुलेशन की आवश्यकता है, या यदि आप एक डेवलपर हैं जो गेम डेवलपमेंट करना चाहते हैं, तो आपको उन्नत प्रोग्रामिंग की आवश्यकता होगी, इसलिए आपको C++ की आवश्यकता होगी।

C++ में प्रक्रियात्मक और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग दोनों के लिए समर्थन है। इसके अलावा, यह पूरी तरह से टेम्पलेट्स, अपवाद हैंडलिंग और विभिन्न पुस्तकालयों से सुसज्जित है। यदि मैं वही चीज़ C में करने का प्रयास करता हूँ, तो मैं ऐसा नहीं कर सकता।

एक कहावत है, पहिये का दोबारा आविष्कार मत करो, और यह सच है।

हममें से अधिकांश लोग यह नहीं समझते कि स्मार्टफोन के आंतरिक सिस्टम को कैसे प्रोग्राम किया जाए। मुझे यह भी नहीं पता कि कितने कैपेसिटर किस निर्माता और किस कारखाने द्वारा बनाए गए हैं। हालाँकि, आप जीपीएस का उपयोग करके अपना स्थान देखते हुए वीडियो कॉल करने, गेम खेलने और संगीत सुनने के लिए हर दिन आसानी से अपने स्मार्टफोन का उपयोग कर सकते हैं। तथाकथित उन्नत चीजें बिना समझे भी की जा सकती हैं।

उदाहरण के लिए, C में OS सिस्टम विकास और C++ में भौतिक सिमुलेशन दोनों जटिल कार्य हैं। हालाँकि, किसी प्रोग्राम में जानकारी की मात्रा के संदर्भ में, C++ आम तौर पर अधिक उन्नत और जटिल है।

और मैं यह नहीं कह रहा हूं कि मैं नैतिक रूप से राजनीतिक रूप से सही होने का विरोध करता हूं, बल्कि मैं सिर्फ यह कह रहा हूं कि वास्तविकता में दोनों प्रकार की प्रोग्रामिंग महत्वपूर्ण हैं। हम C++ की अनुशंसा करते हैं क्योंकि इसका उपयोग अक्सर गेम सहित सॉफ़्टवेयर अनुप्रयोगों के विकास में किया जाता है, और क्योंकि इसमें बहुत सारे उपकरण हैं जो शुरुआती लोगों के लिए आसान हैं।

(शायद ऐसे बहुत से लोग नहीं हैं जो पहली बार प्रोग्रामिंग आज़माना चाहते हैं और उनके पास एक ओएस बनाने और दुनिया में तूफान लाने की जबरदस्त महत्वाकांक्षा है! या यहां तक ​​कि एम्बेडेड विकास भी करते हैं? बेशक ऐसे लोग हैं। मैं सी की अत्यधिक अनुशंसा करता हूं .)

अब, आइए नीचे दिए गए अंतरों पर ध्यान दें।

सी भाषा

सी भाषा प्रक्रियात्मक प्रोग्रामिंग पर केंद्रित है और फ़ंक्शन ओवरलोडिंग का समर्थन नहीं करती है।

इसका मतलब यह है कि एक ही नाम वाले फ़ंक्शन के अलग-अलग पैरामीटर नहीं हो सकते। कोड को व्यवस्थित करने के लिए हेडर और स्रोत फ़ाइलों का उपयोग किया जाता है, लेकिन मानक टेम्पलेट लाइब्रेरीज़ (एसटीएल) के लिए कोई मूल समर्थन नहीं है।

मेमोरी प्रबंधन के लिए मैलोक (), कॉलोक (), और फ्री () फ़ंक्शंस का उपयोग किया जाता है, और अपवाद हैंडलिंग कार्यक्षमता समर्थित नहीं है। प्रिंटफ और स्कैनफ का उपयोग मानक I/O संचालन के लिए किया जाता है, और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग अवधारणाएं, कंस्ट्रक्टर और डिस्ट्रक्टर, ऑपरेटर ओवरलोडिंग, संरचनाओं के भीतर के तरीके और वर्चुअल फ़ंक्शन समर्थित नहीं हैं।

सी++ भाषा

दूसरी ओर, C++ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का समर्थन करता है और इसमें इनकैप्सुलेशन, इनहेरिटेंस और पॉलीमॉर्फिज्म जैसी विशेषताएं हैं।

यह फ़ंक्शन ओवरलोडिंग की अनुमति देता है और अधिक कुशल कोड संगठन के लिए नेमस्पेस पेश करता है। मेमोरी प्रबंधन के लिए व्यापक एसटीएल समर्थन और नए और डिलीट ऑपरेटर। इसमें एक मजबूत अपवाद हैंडलिंग तंत्र के लिए अंतर्निहित समर्थन है और मानक I/O संचालन के लिए C++ मानक लाइब्रेरी के cin और cout का उपयोग करता है।

यह कक्षाओं और वस्तुओं का भी समर्थन करता है, और इसमें वस्तुओं को आरंभ करने और साफ करने के लिए कंस्ट्रक्टर और डिस्ट्रक्टर हैं। यह ऑपरेटर को ओवरलोडिंग की अनुमति देता है, संरचनाओं के भीतर तरीकों को शामिल करने की अनुमति देता है, आभासी कार्यों का समर्थन करता है और बहुरूपता प्राप्त करने में महत्वपूर्ण भूमिका निभाता है।

C++ के लाभ

C++ गतिशील प्रेषण प्राप्त करने के लिए वर्चुअल फ़ंक्शंस का उपयोग करता है। यह आपको रनटाइम पर विभिन्न आकृतियों की वस्तुओं के साथ काम करने की अनुमति देता है, जिसके परिणामस्वरूप कोड पठनीयता और रखरखाव में सुधार होता है। मित्र कार्यों और मित्र वर्गों की एक विशेष अवधारणा भी है, जो आपको किसी वर्ग के निजी या संरक्षित सदस्यों तक पहुंचने की अनुमति देती है जो सामान्य रूप से पहुंच योग्य नहीं हैं।

इसके अतिरिक्त, C++ में फ़ंक्शन और क्लास टेम्पलेट्स के लिए व्यापक समर्थन है, जो डेवलपर्स को अधिक सामान्य और पुन: प्रयोज्य कोड लिखने की अनुमति देता है। इसके विपरीत, C भाषा में कोई टेम्पलेट फ़ंक्शन नहीं है।

इसके अतिरिक्त, C++11 के बाद से, मल्टीथ्रेडेड अनुप्रयोगों के विकास में सहायता के लिए एक मानक थ्रेड लाइब्रेरी प्रदान की गई है, जिससे मल्टीथ्रेडेड प्रोग्रामिंग आसान हो गई है।

C++11 में यह एकमात्र सुधार नहीं है। विशेष रूप से, लैम्ब्डा अभिव्यक्तियों की शुरूआत कोड को अधिक संक्षिप्त और पठनीय बनाने की दिशा में एक बड़ा कदम था। इससे आपके कोड में सीधे अनाम फ़ंक्शंस को परिभाषित करना और उनका उपयोग करना संभव हो जाता है।

संबंधित नोट पर, जब निरंतर घोषणाओं की बात आती है, तो C++ आपको const और constexpr कीवर्ड का उपयोग करके प्रकार-सुरक्षित तरीके से स्थिरांक घोषित करने की अनुमति देता है। इसके विपरीत, C स्थिरांक घोषित करने के लिए #define प्रीप्रोसेसर निर्देश का उपयोग करता है, जो प्रकार की सुरक्षा को कम कर सकता है।

एक साथ कई वस्तुओं की तुलना करें

आइए एक साथ कई वस्तुओं की तुलना करें।

फ़ंक्शंस के लिए डिफ़ॉल्ट तर्कों के संबंध में, यह सी भाषा में समर्थित नहीं है और इसके लिए फ़ंक्शन ओवरलोडिंग की आवश्यकता होती है। दूसरी ओर, C++ फ़ंक्शंस के लिए डिफ़ॉल्ट तर्कों का समर्थन करता है, जिससे फ़ंक्शंस को कॉल करते समय आपको अधिक लचीलापन मिलता है।

मानक टेम्पलेट लाइब्रेरी (एसटीएल) के संबंध में, सी++ में एक एसटीएल है जिसमें विभिन्न प्रकार के वर्ग और फ़ंक्शन शामिल हैं जो स्ट्रिंग मैनिपुलेशन और फ़ाइल I/O जैसे कार्यों का समर्थन करते हैं। यह प्रोग्रामिंग को अधिक कुशल और लचीला बनाता है।

नामस्थान के संदर्भ में, C भाषा में इस अवधारणा का अभाव है, जबकि C++ नाम टकराव से बचने के लिए समूह चर, कार्यों और वर्गों के लिए नामस्थान का उपयोग करता है।

डिस्ट्रक्टर्स के संबंध में, सी भाषा में किसी ऑब्जेक्ट के लिए डिस्ट्रक्टर की अवधारणा नहीं है, लेकिन सी ++ में एक डिस्ट्रक्टर होता है जिसे ऑब्जेक्ट के दायरे से बाहर जाने पर स्वचालित रूप से कॉल किया जाता है, जिससे संसाधनों को साफ करना आसान हो जाता है।

अंत में, ऑटो कीवर्ड C में मौजूद नहीं है, लेकिन C++11 में पेश किया गया था। यह कंपाइलर को स्वचालित रूप से आपके वेरिएबल्स के प्रकार का अनुमान लगाने की अनुमति देता है, जिससे आपका कोड सरल हो जाता है और इसे बनाए रखना आसान हो जाता है।

सारांश विचार

यह एक लंबी कहानी है, लेकिन जैसा कि मैंने शुरुआत में कहा था, C++ मूल रूप से उन लोगों के लिए अनुशंसित है जो किसी चीज़ को लेकर चिंतित हैं। चलो अभी के लिए यह करते हैं.

जब आप नौसिखिया होते हैं तो कई बार ऐसा होता है कि आप चिंतित होते हैं। अब, आइए यूट्यूब पर शुरुआती वीडियो का अनुकरण करें और तुरंत माहौल तैयार करें।

अतीत में, ऐसी किताबें खरीदना मुश्किल था जिन्हें ले जाना असुविधाजनक था और जिनके पन्ने खोलने में थकान होती थी, और नवीनतम संस्करण मेल नहीं खाते थे, लेकिन अब आप अक्सर नवीनतम संस्करण पा सकते हैं। मुझे ईर्ष्या है कि ऐसे वीडियो हैं नौसिखिये के लिए। ज़ोर-ज़ोर से हंसना

साथ ही, अपने अनुभव से, मुझे लगता है कि C++ GUI और प्रेरणा के मामले में C से बेहतर है, क्योंकि आप छवियों में अपने प्रोग्रामिंग के परिणाम देख सकते हैं। (आइए यह न भूलें कि C भाषा नींव है, और इसके बिना कोई C++ नहीं होगा, इसलिए आइए C के लिए आभारी रहें।)

コメント

タイトルとURLをコピーしました