Διαφορά μεταξύ C και C ++ με παραδείγματα Γλώσσες προγραμματισμού

Βασική διαφορά: Οι C και C ++ είναι δύο διαφορετικές γλώσσες προγραμματισμού υπολογιστών. Το C ++ αναπτύχθηκε από τη γλώσσα προγραμματισμού C. Ωστόσο, είναι πολύ διαφορετικές στη φύση τους. Η πιο προφανής διαφορά είναι ότι το C είναι μια γλώσσα προσανατολισμένη προς τη διαδικασία, ενώ το C ++ υποστηρίζει προγραμματισμό και αντικειμενοστραφή προγραμματισμό, επομένως συχνά ονομάζεται υβριδική γλώσσα.

C και C ++ είναι δύο διαφορετικές γλώσσες προγραμματισμού υπολογιστών. C αναπτύχθηκε αρχικά από τον Dennis Ritchie στο AT & T Bell Labs μεταξύ 1969 και 1973. Η C ++ είναι μια άλλη γλώσσα προγραμματισμού γενικής χρήσης. Αναπτύχθηκε από την αρχική γλώσσα προγραμματισμού C. Αναπτύχθηκε από τον Bjarne Stroustrup στο Bell Labs που ξεκίνησε το 1979. Η C ++ αρχικά ονομάστηκε C με τις κλάσεις, καθώς βασίστηκε στο C. Το 1983 μετονομάστηκε σε C ++.

Το C είναι μία από τις παλαιότερες γλώσσες προγραμματισμού που χρησιμοποιείται σήμερα και είναι μία από τις πιο διαδεδομένες γλώσσες προγραμματισμού. Έχει χρησιμοποιηθεί συνεχώς σε εφαρμογές που είχαν προηγουμένως κωδικοποιηθεί στη γλώσσα συναρμολόγησης. Αυτό περιλαμβάνει το λειτουργικό σύστημα υπολογιστή UNIX. Το C έχει επίσης επηρεάσει άμεσα ή έμμεσα πολλές από τις μεταγενέστερες γλώσσες προγραμματισμού, όπως C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python και shell C του Unix. Παρά τις νέες γλώσσες, το C παραμένει μια δημοφιλής γλώσσα προγραμματισμού.

Το C ++ αρχικά ξεκίνησε ως ένα βελτιωτικό για το C. Σχεδιάστηκε για να είναι συμβατό με τον κώδικα πηγής και συνδέσμου με το C. Παρόλα αυτά, πρόσθεσε κλάσεις, εικονικές λειτουργίες, υπερφόρτωση φορέα, πολλαπλή κληρονομιά, πρότυπα, χειρισμό εξαιρέσεων κλπ. Τελικά ανέπτυξε αρκετά ώστε να θεωρείται από μόνη της γλώσσα προγραμματισμού. Αρχικά επικυρώθηκε το 1998 ως πιστοποιημένη γλώσσα προγραμματισμού ISO / IEC 14882: 1998. Σήμερα, η C ++ χρησιμοποιείται συνήθως για το σχεδιασμό υλικού.

Το C είναι μια γλώσσα προγραμματισμού γενικού σκοπού που χρησιμοποιεί το τετράγωνο (?) Ως τερματισμό δήλωσης, καθώς και τα σγουρά ({}) για την ομαδοποίηση μπλοκ δηλώσεων. Έχει εγκαταστάσεις για δομημένο προγραμματισμό και ο σχεδιασμός του παρέχει κατασκευές που μπορούν να χαρτογραφηθούν αποτελεσματικά στις τυπικές οδηγίες του μηχανήματος. Επιτρέπει επίσης τη λεκτική μεταβλητή εμβέλεια και την επανάληψη και διαθέτει ένα σύστημα στατικού τύπου, το οποίο αποτρέπει πολλές ακούσιες πράξεις.

Ωστόσο, σε σύγκριση με τη C ++, ο C έχει πολλούς περιορισμούς. Καθώς το C δεν είναι αντικειμενοστρεφές, δεν υποστηρίζει τις έννοιες OOPS. C δεν υποστηρίζει τη λειτουργία και την υπερφόρτωση του χειριστή. Δεν μπορεί να χρησιμοποιήσει λειτουργίες μέσα στις δομές. Δεν υποστηρίζει εικονικές λειτουργίες και μεταβλητές αναφοράς ή χειρισμό εξαιρέσεων. Επίσης, δεν υποστηρίζει μεταβλητές αναφοράς. Επιπροσθέτως, το C επίσης δεν εγκλείει την κάψουλα ή την ασφάλεια δεδομένων. Σε σύγκριση, η C ++ υποστηρίζει όλα αυτά τα χαρακτηριστικά.

Επιπλέον, το C δεν υποστηρίζει τη λειτουργία NAMESPACE, ενώ η C ++ κάνει. Ο χώρος ονομάτων είναι μια οριστική περιοχή που επιτρέπει σε έναν να ομαδοποιήσει αναγνωριστικά (ονόματα τύπων, λειτουργιών, μεταβλητών κλπ). Οι χώροι ονομάτων μπορούν στη συνέχεια να χρησιμοποιηθούν για την οργάνωση του κώδικα σε λογικές ομάδες και για την αποφυγή συγκρούσεων ονόματος. Αυτό είναι ιδιαίτερα χρήσιμο όταν η βάση κώδικα περιλαμβάνει πολλές βιβλιοθήκες, πράγμα που κάνει ιδανικά τον κώδικα επιρρεπείς στις συγκρούσεις ονόματος.

Οι δύο γλώσσες διαφέρουν επίσης στον τρόπο λειτουργίας των λειτουργιών μνήμης διεύθυνσης, της εισόδου-εξόδου και του προγραμματισμού GUI. Για παράδειγμα, το C χρησιμοποιεί τις λειτουργίες calloc (), malloc () και free () για την κατανομή και την εκχώρηση μνήμης, ενώ η C ++ χρησιμοποιεί νέα και διαγραφή. Το C χρησιμοποιεί scanf () και printf () για την είσοδο και την έξοδο, ενώ το C ++ χρησιμοποιεί τους χειριστές cin >> και cout <<. Το C υποστηρίζει το εργαλείο GTK για προγραμματισμό GUI, ενώ το C ++ υποστηρίζει εργαλεία Qt για προγραμματισμό GUI. Μια άλλη διαφορά είναι ότι ο C απαιτεί να δηλώσει κανείς όλες τις μεταβλητές στην κορυφή του προγράμματος, ενώ στην C ++ οι μεταβλητές μπορούν να δηλωθούν οπουδήποτε στο πρόγραμμα.

Επιπλέον, η C ++ θεωρείται συνήθως ευκολότερη στην εκμάθηση, καθώς είναι πιο φιλική προς τον χρήστη από το C. C ++ έχει επίσης πολλές πρόσθετες λειτουργίες που διευκολύνουν την κωδικοποίηση, ειδικά για κάποιον που είναι νέος στο πλαίσιο C. Ωστόσο, πολλοί ισχυρίζονται ότι έχει πράγματι σημασία. Οι δύο γλώσσες διαφέρουν τόσο πολύ, ότι μπορούν στην πραγματικότητα να είναι δύο διαφορετικές γλώσσες ανεξάρτητες μεταξύ τους. Ένα πράγμα που πρέπει να θυμάστε είναι ότι το C είναι πολύ πιο δομημένο από το C ++, ενώ το C ++ σχεδιάστηκε για να είναι πιο εκφραστικό και αφηρημένο από το C.

Σύγκριση μεταξύ C και C ++:

ντο

C ++

Ιδρύθηκε το

Αναπτύχθηκε από τον Dennis Ritchie στα AT & T Bell Labs μεταξύ 1969 και 1973.

Αναπτύχθηκε από τον Bjarne Stroustrup στα Bell Labs ξεκινώντας το 1979.

Κωδικός πηγής

Κωδικός πηγής ελεύθερης μορφής

Αρχικά αναπτύχθηκε από τη γλώσσα προγραμματισμού C

Γλώσσα

Διαδικασία Προσανατολισμένη γλώσσα

Υποστηρίζει τόσο τα διαδικαστικά όσο και τα αντικειμενοστρεφή παραδείγματα προγραμματισμού. ως εκ τούτου συχνά ονομάζεται υβριδική γλώσσα.

Πλησιάζω

Ακολουθεί προσέγγιση από την κορυφή προς τη βάση.

Ακολουθεί προσέγγιση από τη βάση προς την κορυφή.

Σχέση

Το C είναι ένα υποσύνολο της C ++. Δεν μπορεί να εκτελέσει κώδικα C ++.

Το C ++ είναι ένα υπερσύνολο του C. Η C ++ μπορεί να τρέξει το μεγαλύτερο μέρος του κώδικα C ενώ ο C δεν μπορεί να τρέξει τον κώδικα C ++.

Οδηγώ

Λειτουργική γλώσσα

Γλώσσα που βασίζεται σε αντικείμενα

Συγκεντρώνω

Εστιάζει στη μέθοδο ή τη διαδικασία παρά στα δεδομένα.

Εστιάζει στα δεδομένα παρά στη μέθοδο ή τη διαδικασία.

Δομικά στοιχεία

Λειτουργίες

Αντικείμενα

Λέξεις κλειδιά

Περιέχει 32 λέξεις-κλειδιά

Περιέχει 52 λέξεις-κλειδιά

OOPS Έννοιες

Δεδομένου ότι η γλώσσα C είναι γλώσσα που καθοδηγείται από διαδικασίες, δεν υποστηρίζει έννοιες OOPS όπως τάξη, αντικείμενο, κληρονομιά, πολυμορφισμός, κρύψιμο δεδομένων κλπ.

Ως αντικειμενοστρεφής γλώσσα, το C ++ υποστηρίζει κλάση, αντικείμενο, κρύψιμο δεδομένων, πολυμορφισμό, κληρονομικότητα, αφαίρεση κλπ.

Λειτουργίες

  • Δεν υποστηρίζει τη λειτουργία και την υπερφόρτωση του χειριστή.
  • Δεν είναι δυνατή η χρήση λειτουργιών μέσα στις δομές
  • Δεν υποστηρίζει εικονικές λειτουργίες και μεταβλητές αναφοράς
  • Δεν υποστηρίζει χειρισμό εξαιρέσεων
  • δεν υποστηρίζει μεταβλητές αναφοράς
  • δεν έχει χαρακτηριστικό χώρο ονομάτων
  • μπορεί να καλέσει το main () Function μέσω άλλων λειτουργιών
  • Υποστηρίζει τη λειτουργία και την υπερφόρτωση του χειριστή.
  • Μπορεί να χρησιμοποιήσει λειτουργίες μέσα στις δομές
  • Υποστηρίζει εικονικές λειτουργίες και μεταβλητές αναφοράς.
  • Υποστηρίζει το χειρισμό των εξαιρέσεων χρησιμοποιώντας τη δοκιμή και το block block. Εξαιρέσεις χρησιμοποιούνται για "σκληρά" λάθη που καθιστούν τον κωδικό εσφαλμένο.
  • υποστηρίζει μεταβλητές αναφοράς
  • χρησιμοποιεί τη λειτουργία NAMESPACE η οποία αποφεύγει τις συγκρούσεις ονόματος.
  • δεν μπορεί να καλέσει κύρια () λειτουργία μέσω άλλων λειτουργιών.

Λειτουργίες μνήμης

Χρησιμοποιεί τις λειτουργίες calloc (), malloc () και free () για την κατανομή και την εκχώρηση της μνήμης.

Χρησιμοποιεί νέους χειριστές και διαγράφει για τον ίδιο σκοπό.

Ενθυλάκωση

Δεν υποστηρίζει. Τα δεδομένα και οι λειτουργίες είναι ξεχωριστές και ελεύθερες οντότητες.

Υποστηρίζει την ενθυλάκωση. Τα δεδομένα και οι λειτουργίες είναι ενθυλακωμένα μαζί με τη μορφή ενός αντικειμένου. Η κατηγορία αντικειμένων παρέχει ένα σχέδιο της δομής του αντικειμένου.

Κρυφή πληροφοριών

Το C δεν υποστηρίζει την απόκρυψη πληροφοριών. Εδώ, τα δεδομένα είναι ελεύθερες οντότητες και μπορούν να χρησιμοποιηθούν με εξωτερικό κώδικα.

Ο εγκλωβισμός αποκρύπτει τα δεδομένα για να διασφαλίσει ότι οι δομές δεδομένων και οι χειριστές χρησιμοποιούνται όπως προβλέπεται.

Δεδομένα

Υποστηρίζει ενσωματωμένους και πρωτόγονους τύπους δεδομένων.

Τα δεδομένα δεν είναι ασφαλή λόγω προσανατολισμού χωρίς αντικείμενα

Υποστηρίζει τόσο τους ενσωματωμένους όσο και τους χρήστες που ορίζουν τύπους δεδομένων.

Τα δεδομένα είναι ασφαλή (κρυφή) στη C ++

Επίπεδο

Γλώσσα χαμηλού επιπέδου

Γλώσσα μεσαίου επιπέδου

Εισόδου-εξόδου

Η γλώσσα 'C' χρησιμοποιεί scanf () και printf () για είσοδο και έξοδο.

Η γλώσσα 'C ++' χρησιμοποιεί τους χειριστές cin >> και cout << για την είσοδο και την έξοδο.

Δήλωση μεταβλητών

C απαιτεί ένα να δηλώσει όλες τις μεταβλητές στο πάνω μέρος του προγράμματος.

Στην C ++, οι μεταβλητές μπορούν να δηλωθούν οπουδήποτε στο πρόγραμμα πριν από τη χρήση.

Πολλαπλή δήλωση

Πολλαπλή δήλωση συνολικών μεταβλητών επιτρέπεται.

Πολλαπλή δήλωση συνολικών μεταβλητών δεν επιτρέπεται.

Χαρτογράφηση

Η χαρτογράφηση μεταξύ στοιχείων και λειτουργιών είναι δύσκολη και περίπλοκη.

Η χαρτογράφηση μεταξύ δεδομένων και λειτουργίας μπορεί να χρησιμοποιηθεί με τη χρήση "αντικειμένων"

Προγραμματισμός GUI

Το C υποστηρίζει το εργαλείο GTK για προγραμματισμό GUI

Το C ++ υποστηρίζει εργαλεία Qt για προγραμματισμό GUI

Κληρονομία

Η κληρονομικότητα δεν είναι δυνατή στο C

Η κληρονομικότητα είναι δυνατή στην C ++

Επέκταση αρχείου

Έχει επέκταση αρχείου .c

Έχει επέκταση αρχείου .cpp

Προκαθορισμένο αρχείο κεφαλίδας

Το προεπιλεγμένο αρχείο κεφαλίδας που χρησιμοποιείται στη γλώσσα C είναι stdio.h

Το προεπιλεγμένο αρχείο κεφαλίδας που χρησιμοποιείται στη C ++ είναι το iosteam.h

Μερικά παραδείγματα διαφορών μεταξύ C και C ++:

Παραδείγματα

ντο

C ++

Μεταβλητή δήλωση

Μόνο στην κορυφή:

int i;

για (i = 10, i <10, i ++)

Οπουδήποτε στο πρόγραμμα:

για το (int i = 10, i <10, i ++)

Κατανομή μνήμης

Malloc:

int * x = malloc (μέγεθοςof (int)).

int * x_array = malloc (μέγεθοςof (int) * 10);

Νέος:

int * x = νέο int;

int * x_array = νέο int [10];

Απελευθέρωση μνήμης

Ελεύθερος:

δωρεάν (x);

δωρεάν (x_array);

Διαγράφω:

διαγραφή x;

διαγραφή [] x_array;

Συνιστάται

Σχετικά Άρθρα

  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ κακόβουλου λογισμικού και λογισμικού υποκλοπής spyware

    Διαφορά μεταξύ κακόβουλου λογισμικού και λογισμικού υποκλοπής spyware

    Διαφορά κλειδιού: Το κακόβουλο λογισμικό, το οποίο είναι σύντομο για κακόβουλο λογισμικό, είναι ένας όρος ομπρέλα που ενσωματώνει όλα τα είδη λογισμικού ή προγράμματα που μπορούν να χρησιμοποιηθούν για να διαταράξουν τις κανονικές δυνατότητες υπολογιστών. Spyware, αληθινό το όνομά του είναι το λογισμικό που κατασκοπεύει τις αγορές και τις συνήθειες περιήγησης των χρηστών. Η τεχνολογία μας έκανε τεμπέληδες, περιμένουμε από την τεχνολογία να κάνει σχεδόν τα πάντα για ε
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ αυστηρών και έντονων

    Διαφορά μεταξύ αυστηρών και έντονων

    Βασική διαφορά: Αυστηρή ορίζεται ως η προσκόλληση σε έναν τρόπο να κάνει κάτι με αυστηρό ή άκαμπτο τρόπο. Το αυστηρό επίσης υποδηλώνει λεπτομερή ή ακριβή τρόπο, ενώ σθεναρά ορίζει την ενεργειακή ιδιότητα, σημαίνει ζωντανή και δύναμη του σώματος ή του νου. Οι αυστηροί και έντονοι και οι δύο χρησιμοποιούνται για να καθορίσουν τη στάση, έναν τρόπο ή μια προσέγγιση με κάποια συγκεκριμένα χαρακτηριστικά. Η φαινομενική διαφορά μεταξύ τους είναι ότι το γράμμα R της α
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ RSTP και PVST

    Διαφορά μεταξύ RSTP και PVST

    Βασική διαφορά: Το πρωτόκολλο Rapid Spanning Tree (RSTP) παρέχει μια σημαντικά ταχύτερη σύγκλιση μεταξύ των δέντρων μετά από μια αλλαγή τοπολογίας σε σύγκριση με την αρχική STP. Για να γίνει αυτό, το RSTP παρέχει νέα εισάγει νέες συμπεριφορές σύγκλισης και ρόλους γέφυρας λιμένων. Το PVST σημαίνει Per-VLAN Spanning Tree. Είναι η ιδιόκτητη έκδοση της Cisco του πρωτοκόλλου Spanning Tree. Το PVST επιτρέπει τη δημιουργία ενός διασταυρούμενου δέντρου για κάθε VLAN. Τα RSTP και PVST εί
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ Cappuccino και Mocha

    Διαφορά μεταξύ Cappuccino και Mocha

    Βασική διαφορά : Το Cappuccino και το Mocha είναι δύο ευρέως διαδεδομένα ποτά καφέ από ανθρώπους σε όλο τον κόσμο. Η κύρια διαφορά μεταξύ των δύο βασίζεται στα συστατικά τους και το στυλ κατασκευής τους. Το Mocha, επίσης γνωστό ως Mocaccino ή Café Mocha, είναι μια παραλλαγή καφέ. Το όνομά της προέρχεται από την παραθαλάσσια πόλη Mocha της Υεμένης, η ο
  • δημοφιλείς συγκρίσεις: Διαφορές μεταξύ των Χριστιανών και των Καθολικών

    Διαφορές μεταξύ των Χριστιανών και των Καθολικών

    Βασική διαφορά: Ο Χριστιανισμός είναι μια μονοθεϊστική θρησκεία που γεννήθηκε στην Ιερουσαλήμ το 33 μ.Χ. Οι Χριστιανοί ακολουθούν τις διδασκαλίες της Παλαιάς Διαθήκης και της Καινής Διαθήκης, που αποτελείται από τις διδασκαλίες του Ιησού. Οι τρεις κύριες αίθουσες του Χριστιανισμού είναι η Ρωμαιοκαθολική Εκκλησία, η Ανατολική Ορθόδοξη Εκκλησία και ο Προτεσταντισμός, οι οποίες χωρίζονται σε διάφορες εκκλησίες. Ο Χριστιανισμός είναι μ
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ του αποβουτυρωμένου γάλακτος και του διπλού τόνου γάλακτος

    Διαφορά μεταξύ του αποβουτυρωμένου γάλακτος και του διπλού τόνου γάλακτος

    Διαφορά κλειδιού: Το αποκορυφωμένο γάλα είναι ένα προϊόν από το οποίο έχει αφαιρεθεί σχεδόν όλο το λίπος γάλακτος. Το γαλακτοποιημένο γάλα είναι εντελώς φρέσκο ​​και έχει πολύ χαμηλά λιπαρά. Η σημερινή γενιά είναι πολύ συνειδητή στην υγεία. Χρειάζονται τέλεια και καλή υγεία. Για να διατηρήσουν τον εαυτό τους, μερικές φορές αγνοούν το συστατικό, το
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ VIP και VVIP

    Διαφορά μεταξύ VIP και VVIP

    Διαφορά κλειδιού: Το VIP αντιπροσωπεύει πολύ σημαντικό πρόσωπο, ενώ το VVIP αποτελεί πολύ σημαντικό πρόσωπο. Τα VIP θεωρούνται πιο σημαντικά από ένα φυσιολογικό άτομο. Ένα VVIP είναι ένα πρόσωπο που αντιμετωπίζεται ως ακόμη σημαντικότερο από ένα VIP. Αν και οι άνθρωποι ισχυρίζονται ότι όλοι είναι ίσοι ή απαιτούν ισότητα όλων, η αλήθεια του θέματος είναι ότι δεν είναι όλοι ίσοι, κάποιοι είναι πιο ίσοι από τους άλλους. Αυτό σημαίνει ότι δε
  • δημοφιλείς συγκρίσεις: Διαφορά μεταξύ Ξεκλείδωμα και Jailbreaking ένα iPhone

    Διαφορά μεταξύ Ξεκλείδωμα και Jailbreaking ένα iPhone

    Διαφορά κλειδιού: Το ξεκλείδωμα ενός iPhone καταργεί τους περιορισμούς της κάρτας SIM από το τηλέφωνο, επιτρέποντας τη χρήση του iPhone σε οποιονδήποτε μεταφορέα. Η Jailbreaking είναι μια μέθοδος που επιτρέπει στο χρήστη να ξεπεράσει τους περιορισμούς που θέτει η Apple και επιτρέπει στο χρήστη να κατεβάσει πρόσθετες εφαρμογές, επεκτάσεις και θέματα που δεν είναι διαθέσιμα μέσω του επίσημου App Store της Apple. Η Apple έχει πολλές αυστηρές οδηγίες όταν πρόκειται για τα προϊόντα της, ειδικά όταν πρόκειται για προσαρμογή. Η Apple δεν επιτρέπει τη λειτουργία λογισμικού ή εφαρμογών που δεν έχουν εγκ
  • δημοφιλείς συγκρίσεις: Η διαφορά μεταξύ του Κραγιόν και του Lip Lacquer

    Η διαφορά μεταξύ του Κραγιόν και του Lip Lacquer

    Βασική διαφορά : Το κραγιόν και το Lip Lacquer είναι δύο διαφορετικά καλλυντικά προϊόντα που φοριούνται στα χείλη. Η κύρια διαφορά μεταξύ των δύο προϊόντων είναι ότι το κραγιόν περιέχει κερί με έλαια, αντιοξειδωτικά και μαλακτικά, ενώ το χείλος του χείλους είναι μια μαλακή ή υγρή γέλη που δεν περιέχει κερί. Κραγιόν και χείλος λάκα, και οι δύο εφαρμόζονται στα χείλη? Ωστόσο, δίνουν μια διαφορετική εμφάνιση μόλις φοριούνται. Προκειμένου να γίνει διάκριση μεταξύ αυτών των δύο προϊόντων, πρέπει να γνωρίζουμε τα συστατικά, τα πλεονεκτήματα, τα μειον

Επιλογή Συντάκτη

Διαφορά μεταξύ ανανεώσιμων και μη ανανεώσιμων πόρων

Βασική διαφορά: Ένας ανανεώσιμος πόρος είναι ένας φυσικός πόρος που μπορεί να ανανεωθεί μέσω βιολογικής αναπαραγωγής άλλων φυσικά διεργασιών. Από την άλλη πλευρά, ένας μη ανανεώσιμος πόρος είναι ένας φυσικός πόρος που δεν μπορεί να αναπληρωθεί σε σύγκριση με την κατανάλωσή του. Οι φυσικοί πόροι είναι μεγάλης σημασίας για τον άνθρωπο και για άλλα πλάσματα. Κατηγοριοποιούνται γενικά σε δύο ομάδες - ανανεώσιμες και μη ανανεώσιμες. Ανανεώσιμες πηγές αναφέρεται σε εκείνους τους τύπους πόρων που θα είναι διαθέσ