C++: Διαφορά μεταξύ των αναθεωρήσεων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ Αναστροφή της επεξεργασίας από τον 94.69.231.188 (συνεισφ.), επιστροφή στην τελευταία εκδοχή υπό Stepanps
Ετικέτα: Επαναφορά
γιατί είναι λανθασμένο το κείμενο;
Γραμμή 1: Γραμμή 1:
[[Εικόνα:BjarneStroustrup.jpg|thumb|right|300px|Ο [[Μπιάρνε Στρούστρουπ]], δημιουργός της γλώσσας C++.]]
[[Εικόνα:BjarneStroustrup.jpg|thumb|right|300px|Ο [[Μπιάρνε Στρούστρουπ]], δημιουργός της γλώσσας C++.]]
Η '''C++''' (διαβάζεται: σι πλας πλας [siː plʌs plʌs]) είναι μία γενικού σκοπού [[γλώσσα προγραμματισμού]] [[Ηλεκτρονικός υπολογιστής|Η/Υ]]. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια [[Μεταγλωττιστής|μεταγλωττιζόμενη]] γλώσσα πολλαπλών παραδειγμάτων, με [[σύστημα τύπων|τύπους]]. Υποστηρίζει [[Δομημένος προγραμματισμός|δομημένο]], [[Αντικειμενοστρεφής γλώσσα προγραμματισμού|αντικειμενοστρεφή]] και γενικό προγραμματισμό.
Η '''C++''' (διαβάζεται: σι συν συν [siː sin sin]) είναι μία γενικού σκοπού [[γλώσσα προγραμματισμού]] [[Ηλεκτρονικός υπολογιστής|Η/Υ]]. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια [[Μεταγλωττιστής|μεταγλωττιζόμενη]] γλώσσα πολλαπλών παραδειγμάτων, με [[σύστημα τύπων|τύπους]]. Υποστηρίζει [[Δομημένος προγραμματισμός|δομημένο]], [[Αντικειμενοστρεφής γλώσσα προγραμματισμού|αντικειμενοστρεφή]] και γενικό προγραμματισμό.


Η γλώσσα αναπτύχθηκε από τον [[Μπιάρνε Στρούστρουπ]] το [[1979]] στα [[εργαστήρια Bell]] της [[AT&T]], ως βελτίωση της ήδη υπάρχουσας [[C (γλώσσα προγραμματισμού)|γλώσσας προγραμματισμού C]], και αρχικά ονομάστηκε "C with Classes", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το [[1983]]. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α.
Η γλώσσα αναπτύχθηκε από τον [[Μπιάρνε Στρούστρουπ]] το [[1979]] στα [[εργαστήρια Bell]] της [[AT&T]], ως βελτίωση της ήδη υπάρχουσας [[C (γλώσσα προγραμματισμού)|γλώσσας προγραμματισμού C]], και αρχικά ονομάστηκε "C with Classes", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το [[1983]]. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α.

Έκδοση από την 21:08, 3 Σεπτεμβρίου 2019

Ο Μπιάρνε Στρούστρουπ, δημιουργός της γλώσσας C++.

Η C++ (διαβάζεται: σι συν συν [siː sin sin]) είναι μία γενικού σκοπού γλώσσα προγραμματισμού Η/Υ. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια μεταγλωττιζόμενη γλώσσα πολλαπλών παραδειγμάτων, με τύπους. Υποστηρίζει δομημένο, αντικειμενοστρεφή και γενικό προγραμματισμό.

Η γλώσσα αναπτύχθηκε από τον Μπιάρνε Στρούστρουπ το 1979 στα εργαστήρια Bell της AT&T, ως βελτίωση της ήδη υπάρχουσας γλώσσας προγραμματισμού C, και αρχικά ονομάστηκε "C with Classes", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το 1983. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α.

Η γλώσσα ορίστηκε παγκοσμίως, το 1998, με το πρότυπο ISO/IEC 14882:1998. Η τρέχουσα έκδοση αυτού του προτύπου είναι αυτή του 2003, η ISO/IEC 14882:2003. Μια καινούρια έκδοση είναι υπό ανάπτυξη, γνωστή ανεπίσημα με την ονομασία C++0x.

Φιλοσοφία

Στο βιβλίο The Design and Evolution of C++ (1994), ο Μπιάρνε Στρούστρουπ περιγράφει τα κριτήρια που χρησιμοποιεί για το σχεδιασμό της C++, εξηγώντας πως η C++ είναι σχεδιασμένη:

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

Το βιβλίο Inside the C++ Object Model (Lippman, 1996) περιγράφει πως οι μεταγλωττιστές μπορούν να μετατρέψουν εντολές ενός προγράμματος C++ σε μια διάταξη στη μνήμη. Παρόλα αυτά, οι συγγραφείς μεταγλωττιστών είναι γενικά ελεύθεροι να υλοποιήσουν το πρότυπο με δικό τους τρόπο.

Χαρακτηριστικά

Η C++ κληρονόμησε το μεγαλύτερο μέρος της σύνταξης της C και τον προεπεξεργαστή της C. Το παρακάτω είναι ένα πρόγραμμα hello world που χρησιμοποιεί την λειτουργία stream της πρότυπης βιβλιοθήκης της C++ για να γράψει ένα μήνυμα στην κύρια έξοδο. Το παρακάτω πρόγραμμα χρησιμοποιεί την βιβλιοθήκη εισόδου/εξόδου iostream

#include <iostream>  // αρχείο επικεφαλίδας για την βιβλιοθήκη εισόδου/εξόδου iostream (για cout)

// std: standard namespace
// cout: "see-output"

int main()
{
   std::cout << "Hello, world!\n";
}

Τελεστές και υπερφόρτωση τελεστών

Η C++ παρέχει περισσότερους από 30 τελεστές, που καλύπτουν τη βασική αριθμητική, το χειρισμό bit, αναφορά δεικτών, συγκρίσεις, λογικές πράξεις κ.ά. Σχεδόν όλοι οι τελεστές μπορούν να υπερφορτωθούν για τύπους ορισμένους από το χρήστη, με λίγες εξαιρέσεις όπως πρόσβαση μέλους (. και .*). Το πλούσιο σύνολο από τελεστές που μπορούν να υπερφορτωθούν είναι βασικό για τη χρήση της C++ ως γλώσσα ειδικού πεδίου (domain specific language). Οι υπερφορτώσιμοι τελεστές είναι ακόμα βασικό μέρος πολλών προχωρημένων τεχνικών προγραμματισμού της C++, όπως οι έξυπνοι δείκτες. Η υπερφόρτωση ενός τελεστή δεν αλλάζει την προτεραιότητα των υπολογισμών όπου χρησιμοποιείται, ούτε τον αριθμό των τελεστέων που χρησιμοποιεί ο τελεστής (αν και οποιοσδήποτε τελεστέος μπορεί απλά να αγνοείται).

Πηγές

Εξωτερικοί σύνδεσμοι

  • The invention of C++ — Συνέντευξη του Μπιάρνε Στρούστρουπ για τη δημιουργία της γλώσσας. (Αγγλικά)
  • C++ στο Curlie

Βιβλία:Η γλώσσα C++ σε βάθος[1] (Ν. Χατζηγιαννάκης - Εκδόσεις ΚΛΕΙΔΑΡΙΘΜΟΣ)

CC-BY-SA
Μετάφραση
Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα C++ της Αγγλικής Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 4.0. (ιστορικό/συντάκτες).
  1. [cpp.bytes.gr «Η γλώσσα C++ σε βάθος»] Check |url= value (βοήθεια).