Μετάβαση στο περιεχόμενο

C++

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
(Ανακατεύθυνση απόC plus plus)
ΟΜπιάρνε Στρούστρουπ,δημιουργός της γλώσσας C++.

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

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

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

Στο βιβλίο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"

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

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

[Επεξεργασία|επεξεργασία κώδικα]

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

  1. 1,01,11,2Bjarne Stroustrup,«Η γλώσσα προγραμματισμού C++»,σελ. 39,Εκδότης: Κλειδάριθμος, 1999,(ISBN9603321427και9789603321422).Αρχειοθετήθηκε04/09/2019. Ανακτήθηκε 04/09/2019.

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

[Επεξεργασία|επεξεργασία κώδικα]

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


  1. [cpp.bytes.gr «Η γλώσσα C++ σε βάθος»]Check|url=value (βοήθεια).