🔴 Advanced  ·  Lesson 50

C vs C++ अंतर

C और C++: छोटी कहानी

C पहले आई, 1970 के दशक की शुरुआत में, operating systems और अन्य low-level software बनाने की एक compact language के रूप में। सालों बाद C++ बनाई गई — C के एक extension के रूप में। इसने वह सब रखा जो C कर सकती थी और programs को व्यवस्थित करने का एक बिल्कुल नया तरीका जोड़ा जिसे object-oriented programming कहते हैं।

तो संबंध सरल है: C++ यानी C और उससे ज़्यादा। जो कुछ आप C में लिखते हैं वह लगभग C++ में भी चलता है, पर C++ आपको अतिरिक्त उपकरण देता है जो बड़े, जटिल projects में चमकते हैं। बाकी lesson ठीक यही अतिरिक्त चीज़ें दिखाता है।

Procedural बनाम object-oriented

यह सबसे गहरा अंतर है। C में आप functions के रूप में सोचते हैं जो data पर काम करते हैं। C++ में आप objects के रूप में भी सोच सकते हैं — ऐसे bundles जो संबंधित data और उस पर काम करने वाले functions को एक जगह (एक class) रखते हैं।

💡 एक सरल तस्वीर

C: "यह कुछ data है, और ये functions हैं जो उस पर काम करते हैं।"   C++: "यह एक object है जो अपनी data का मालिक है और खुद पर काम करना जानता है।"

Input और output

print करने का तरीका तक अलग है। C printf और scanf इस्तेमाल करती है; C++ cout और cin के साथ एक साफ़ stream style जोड़ती है।

C Language
// C
#include <stdio.h>
int main() {
    printf("Hello from C\n");
    return 0;
}
Output:
Hello from C
C++
// C++
#include <iostream>
using namespace std;
int main() {
    cout << "Hello from C++" << endl;
    return 0;
}
Output:
Hello from C++

C++ जो C में जोड़ता है

ये बड़े features हैं जो C में हैं ही नहीं:

  • Classes और objects — data को उसके इस्तेमाल करने वाले functions के साथ बाँधना।
  • Function overloading — कई functions एक नाम अलग parameters के साथ साझा कर सकते हैं।
  • Inheritance — मौजूदा classes से नई classes बनाना।
  • Templates — एक ही code जो कई types के लिए काम करे।
  • Exception handling — साफ़ error handling के लिए try/catch

Memory management

दोनों run time पर memory ले सकते हैं। C malloc और free इस्तेमाल करती है; C++ सरल new और delete जोड़ती है (और malloc/free की भी अनुमति देती है)।

कामCC++
Allocatemalloc()new (या malloc)
Releasefree()delete (या free)

malloc और free विस्तार से समझने के लिए देखें C में dynamic memory

पूरी तुलना तालिका

बिंदुCC++
Programming styleProceduralProcedural + object-oriented
Classes और objectsनहींहाँ
Function overloadingनहींहाँ
Inheritance / templatesनहींहाँ
Input / outputprintf, scanfcout, cin
Memorymalloc, freenew, delete (+ malloc/free)
Exception handlingBuilt-in नहींहै (try/catch)
आम उपयोगOS, embedded, driversApps, games, बड़े software

पहले कौन सी सीखें?

कोई एक सही जवाब नहीं है, पर एक आम, भरोसेमंद रास्ता यह है:

  • पहले C सीखें अगर आप memory, pointers और programs असल में कैसे काम करते हैं — इनकी ठोस समझ चाहते हैं। ये लगभग हर दूसरी language में काम आती हैं।
  • सीधे C++ पर जाएँ अगर लक्ष्य जल्दी applications या games बनाना है और object-oriented विचार जल्दी सीखने में सहज हैं।

किसी भी हाल में, C पर लगाया समय कभी बर्बाद नहीं जाता — इसके concepts C++ के नीचे बैठे होते हैं।

आम भ्रम

  • "C++ हमेशा C से तेज़ है।" सच नहीं — दोनों efficient code बनाते हैं; आपका algorithm कहीं ज़्यादा मायने रखता है।
  • "C पुरानी हो गई।" नहीं — C आज भी operating systems, embedded devices और महत्वपूर्ण software चलाती है।
  • "C++ छूने से पहले C में महारत ज़रूरी है।" मददगार, पर अनिवार्य नहीं; कई लोग सीधे C++ से शुरू करते हैं।
  • "C++ ने C की जगह ले ली।" दोनों साथ रहते हैं; हर एक अलग कामों के लिए उपयुक्त है।
🏋️ अभ्यास

वही "दो numbers जोड़ो" program दो बार लिखें — एक बार C में printf/scanf से, एक बार C++ में cout/cin से। देखें क्या समान रहता है (logic) और क्या बदलता है (syntax)।

सारांश

  • C procedural है; C++ procedural और object-oriented है।
  • C++ C के extension के रूप में शुरू हुई और ज़्यादातर उससे compatible है।
  • C++ classes, overloading, inheritance, templates और exceptions जोड़ती है।
  • कोई अपने आप तेज़ नहीं — algorithm सबसे ज़्यादा मायने रखता है।
  • पहले C सीखने से fundamentals मज़बूत होते हैं; C++ स्वाभाविक अगला कदम है।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

C और C++ में मुख्य अंतर क्या है?
मुख्य अंतर programming style का है। C एक procedural language है — आप code को functions के रूप में व्यवस्थित करते हैं जो data पर काम करते हैं। C++ वह सब रखता है जो C कर सकता है, पर object-oriented programming जोड़ता है, जिससे data और functions को classes और objects में एक साथ बाँधा जा सकता है। तो C++ मूलतः C के साथ कई अतिरिक्त features है।
क्या C++ बस C का नया version है?
बिल्कुल नहीं। C++ C के extension के रूप में शुरू हुआ और काफ़ी हद तक उससे compatible है, पर यह अपनी अलग language है जिसमें classes, inheritance, templates, function overloading और exception handling जैसी बड़ी चीज़ें जुड़ी हैं। ज़्यादातर C code C++ में compile होता है, पर बहुत सारे C++ code का C में कोई समकक्ष नहीं है।
मुझे पहले C सीखनी चाहिए या C++?
दोनों तरीके काम करते हैं, पर पहले C सीखने से fundamentals पर मज़बूत पकड़ मिलती है — variables, pointers, memory और machine असल में कैसे काम करती है — बिना object-oriented concepts के अतिरिक्त बोझ के। उसके बाद C++ एक स्वाभाविक अगला कदम लगता है। अगर आपका एकमात्र लक्ष्य application या game development है, तो सीधे C++ से शुरू करना भी ठीक है।
क्या C++ C से तेज़ है?
कोई भी अपने आप तेज़ नहीं — दोनों efficient machine code में compile होते हैं। अच्छी तरह लिखा C और अच्छी तरह लिखा C++ बहुत समान प्रदर्शन करते हैं। गति दोनों के चुनाव से कहीं ज़्यादा आपके algorithm और language इस्तेमाल करने के तरीके पर निर्भर करती है।
क्या मैं C++ program में C code इस्तेमाल कर सकता हूँ?
हाँ, काफ़ी हद तक। चूँकि C++ को ज़्यादातर C-compatible बनाया गया था, आप अधिकांश C code और libraries C++ में दोबारा इस्तेमाल कर सकते हैं। यही एक कारण है कि दोनों अक्सर साथ पढ़ाए जाते और असली projects में साथ-साथ इस्तेमाल होते हैं।
← Back to C Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.