Διαφορά μεταξύ 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;

Συνιστάται

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

  • διαφορά μεταξύ: Διαφορά μεταξύ τυχερών παιχνιδιών και στοιχημάτων

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

    Βασική διαφορά : Το στοίχημα θεωρείται μια μορφή παιχνιδιού. Η κύρια διαφορά μεταξύ των δύο δραστηριοτήτων είναι ότι στο παιχνίδι «το στοίχημα» ή το «στοίχημα» τοποθετείται σε μια εκδήλωση χωρίς βάση των αποτελεσμάτων, ενώ στο στοίχημα τοποθετούνται τα πονταρίσματα, με βάση τουλάχιστον μια ιδέα ή την απόδοση σχετικά με το εν λόγω γεγονός στοιχηματισμού. «Ο κόσμος πρόκειται να τελειώσει το έτος 2013! Θέλετε να στοιχηματίσετε; "ή" Σίγουρα, η Αυστραλία θα κερδίσει το Παγκόσμιο Κύπελλο! " ή «Σίγουρα να πίνετε 10 ποτήρια γάλα!» όπως μπορούμε να δούμε, αυτές οι γραμμές ακούγονται και γ
  • διαφορά μεταξύ: Διαφορά μεταξύ του Εγώ και του Εαυτού

    Διαφορά μεταξύ του Εγώ και του Εαυτού

    Βασική διαφορά: Ο εαυτός και το εγώ είναι εντελώς διαφορετικοί όροι ανάλογα με τον ορισμό που ακολουθείτε. Επιστημονικά, το εγώ είναι απλώς η ανθρώπινη φύση και δεν είναι κακό, αλλά δικαιολογεί αυτό που πιστεύει ότι είναι σωστό, ενώ στη θρησκεία και την πνευματικότητα θεωρείται κακό και μειώνει τον αληθινό εαυτό του ανθρώπου. Ομοίως, ο εαυτός θεωρείται επιστημονικά μια μοναδικότητα ή μια προσωπικότητα ενός ατόμου. Ωστόσο, στην πνευματικότητα είναι ο αληθινός εαυτός του ατόμου ή η σύνδεσή του με τον Θεό. Το εγώ και ο εαυτός είναι δύο έννοιες που είναι ιδιαίτερα συζητημένες τόσο στην επιστήμ
  • διαφορά μεταξύ: Διαφορές μεταξύ του πολιτικού δικαστηρίου και του ποινικού δικαστηρίου

    Διαφορές μεταξύ του πολιτικού δικαστηρίου και του ποινικού δικαστηρίου

    Βασική διαφορά: Το ποινικό δίκαιο είναι ο νόμος που ασχολείται με τους εγκληματίες. Το έγκλημα ορίζεται ουσιαστικά ως κάτι που «απειλεί, βλάπτει ή άλλως θέτει σε κίνδυνο την ιδιοκτησία, την υγεία, την ασφάλεια και την ηθική ευημερία των ανθρώπων». Το Αστικό Δίκαιο είναι ο νόμος που ασχολείται με τα πολιτικά λάθη και τις συμβάσεις, καθώς και το δίκαιο της ιδιοκτησίας. Μπορούμε επίσης να πούμε ότι το αστικό δίκαιο είναι μη ποινικό δίκαιο. Το αστικ
  • διαφορά μεταξύ: Διαφορά μεταξύ Snapdeal και Flipkart

    Διαφορά μεταξύ Snapdeal και Flipkart

    Βασική διαφορά: Η Snapdeal είναι μια ηλεκτρονική αγορά που ιδρύθηκε από τους Kunal Bahl και Rohit Bansal το 2010. Η Flipkart είναι μια ινδική εταιρεία ηλεκτρονικού εμπορίου που ίδρυσε ο Sachin Bansal και ο Binny Bansal το 2007. Τα ψώνια σήμερα έχουν γίνει ένα κομμάτι κέικ, με online ψώνια να πάρει τα παραδοσιακά ψώνια. Δεν υπάρχει πλέον ταξίδι
  • διαφορά μεταξύ: Διαφορά μεταξύ του διαφημιστικού περιεχομένου και των εγγενών διαφημίσεων

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

    Διαφορά κλειδιού: Οι εγγενείς διαφημίσεις είναι τύποι διαφημίσεων που μοιάζουν με το αρχικό περιεχόμενο στη σελίδα. Ως εκ τούτου, δεν διακρίνεται πάντα ως διαφήμιση. Το διαφημιστικό περιεχόμενο είναι μια υποκατηγορία φυσικής διαφήμισης. Το διαφημιστικό περιεχόμενο δεν είναι τίποτα περισσότερο από μια
  • διαφορά μεταξύ: Διαφορά μεταξύ διαγραφής και αλλαγής διαγραφής

    Διαφορά μεταξύ διαγραφής και αλλαγής διαγραφής

    Διαφορά κλειδιού: Και οι δύο επιλογές διαγράφουν το αρχείο. Η διαγραφή μετακινεί το αρχείο στον Κάδο Ανακύκλωσης, ενώ το Shift Delete διαγράφει οριστικά το αρχείο. Αυτές τις μέρες, ανεξάρτητα από το μέγεθος του σκληρού δίσκου, είναι πολύ μικρό. Ο χώρος στο σκληρό δίσκο του υπολογιστή είναι σχεδόν πάντα γεμάτος, ανεξάρτητα από το τι. Ενώ μερικές από τις επιλογές είναι να αναβαθμίσετε σε ένα μεγαλύτερο σκληρό δίσκο ή να πάρετε ένα
  • διαφορά μεταξύ: Διαφορά μεταξύ RAW και JPEG

    Διαφορά μεταξύ RAW και JPEG

    Διαφορά κλειδιού: Το RAW είναι η πρώτη εικόνα που τραβάει η φωτογραφική μηχανή. Αποθηκεύει όλα τα δεδομένα και τις πληροφορίες για την εικόνα, με ελάχιστη επεξεργασία. Το JPEG σημαίνει Joint Photographic Expert Group. Είναι η πιο συχνά χρησιμοποιούμενη μορφή για φωτογραφίες. Το JPEG είναι ιδιαίτερα κ
  • διαφορά μεταξύ: Διαφορά μεταξύ του Πρέσβη και του Ύπατου Αρμοστή

    Διαφορά μεταξύ του Πρέσβη και του Ύπατου Αρμοστή

    Βασική διαφορά: Οι πρεσβευτές και οι ανώτεροι Επίτροποι είναι διπλωμάτες, οι οποίοι είναι υπεύθυνοι για την εκπροσώπηση της πατρίδας τους σε μια ξένη χώρα. Ο όρος «Ύπατος Αρμοστής» αναφέρεται σε έναν Πρέσβη σε μια χώρα της Κοινοπολιτείας. Οι όροι «πρεσβευτής» και «Ύπατος Αρμοστής» συχνά προκαλούν σύγχυση λόγω του παρόμοιου πλαισίου στο οποίο χρησιμοποιούνται. Ο λόγος γι 'αυτό είναι επειδή. αυτά τα λόγια είναι πραγματικά ένα και
  • διαφορά μεταξύ: Διαφορά μεταξύ καφέ και καπουτσίνο

    Διαφορά μεταξύ καφέ και καπουτσίνο

    Βασική διαφορά: Ο καφές είναι στην πραγματικότητα οποιοδήποτε ποτό που παρασκευάζεται από τους κόκκους καφέ, το οποίο αποκτάται από το εργοστάσιο της Coffea. Το καπουτσίνο είναι ποτό που παρασκευάζεται με το παρασκευασμένο υγρό από κόκκους καφέ με γάλα και αφρό γάλακτος. Ο καφές και το καπουτσίνο δεν είναι τόσο διαφορετικοί, αφού το καπουτσίνο είναι απλά ένας τύπος καφέ. Ένας πίνακας καφέ είναι καλυμμένος με τόσους τύπους καφέ, ακόμη και για να αναισθητοποιήσει έναν άπληστο ποτό καφέ. Ο

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

Διαφορά μεταξύ ψυχής και πνεύματος

Βασική διαφορά: Βασικά, η ψυχή είναι ποιος είσαι. Ενσωματώνει τις σκέψεις του ατόμου, τη θέλησή του, τις επιθυμίες, τα συναισθήματά του και την ικανότητα λογικής. Η ψυχή είναι η καρδιά του σώματος, δεν πεθαίνει. Είναι αθάνατο μέρος ενός ατόμου που ξεπερνά το θάνατο και πηγαίνει σε ένα υψηλότερο επίπεδο, δηλαδή τον ουρανό, κλπ. Ένα πνεύμα, από την άλλη πλευρά, είναι η σπίθα του