Βιβλίο αναφοράς ή pdf στα ελληνικά για C++

Καλησπέρα σε όλους. Γνωρίζεις κανείς κάποιο αξιόλογο βιβλίο αναφοράς ή pdf (προς εκτύπωση) για C++ στην ελληνική γλώσσα;
Έχω για παράδειγμα το “Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C” των Dennis Ritchie και Brian Kernighan για τη γλώσσα C και είναι μικρό και περιεκτικό. Κάτι ανάλογο ψάχνω.

Καλησπέρα, στη σχολή μας δίνανε δωρεάν, την “βίβλο” (αυτός που έγραψε την C++) αλλά είναι ζόρικο ανάγνωσμα :

Eπίσης μας πρότειναν να αγοράσουμε και το παρακάτω, το οποίο χρησιμοποιήσαμε αρκετά :

Υπάρχουν στην πραγματικότητα 2 “διαφορετικές” γλώσσες προγραμματισμού με το όνομα C++, η παλiα C++ και η C++11 και μετά. Η τελευταία πρόσθεσε κάποια χαρακτηριστικά που την κάνουν να μοιάζει με μια νέα γλώσσα, σχεδόν τόσο εκφραστική όσο η Python. Με ενδιάμεσα βήματα την C++14 και την C++17 θα φτάσουμε στην C++20 που είναι σχεδόν έτοιμη, την περιμένουμε απο βδομάδα σε βδομάδα. Η C++20 θα αλλάξει την γλώσσα, σχεδόν το ίδιο με την C++11.

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

Γιατί τα λέω αυτά;

  • Γιατί δεν θέλεις να μάθεις όλη την C++. Κάθε έκδοση προσθέτει στην γλώσσα και η περιγραφή της είναι σήμερα κοντά στις 2000 σελίδες. Η C έχει κάπου 200 και η πρώτη C++ είχε κάπου 500 σελίδες.
  • Θέλεις να μάθεις μόνο το 10% της γλώσσας. Το πρόβλημα είναι πως δεν συμφωνούν όλοι στα πράγματα που μπαίνουν σε αυτό το ποσοστό.
  • Πιθανά να πιστεύεις πως η C++ είναι μια αντικειμενοστραφής γλώσσα. Ε λοιπόν όχι, τα αντικείμενα είναι το ελάχιστα ενδιαφέρον χαρακτηριστικό της.
  • Δεν έχει νόημα να μάθεις τους παλιούς τρόπους. Πρέπει να ξεκινήσεις με auto, STL, lambda functions και std::vector<>

Με βάση τα παραπάνω είναι δύσκολο να βρεις ένα καλό βιβλίο στα Αγγλικά. Αν στην περιγραφή του δεν λέει C++17 το ξεχνάς κατ αρχήν. Και πάλι δεν είναι σίγουρο πως έχει γραφτεί με την C++11 σαν πρώτη σκέψη. Οπότε ξεχνάμε και τα ελληνικά βιβλία, κανένα δεν έχει βγει τα τελευταία χρόνια και κανένα δεν είναι ενημερωμένο

Το μικρό βιβλιαράκι είναι καλό αν ξέρεις προγραμματισμό. Σύντομο και περιεκτικό, αρέσκει μου

Αυτό είναι εισαγωγικό. Αν το συζητάς να πάρεις το άλλο βιβλιο του Stroustrup, μην το κάνεις, πάρε αυτό

Βλέπω υπάρχει στα ελληνικά η έκδοση για C++14

Αυτό επίσης είναι καλό, αλλά προσοχή δεν θες το C++ Primer Plus. Το δεύτερο είναι πολύ κακό βιβλίο από άλλο συγγραφέα

Ανεξάρτητα του ποιου θα επιλέξεις, είναι σημαντικό να πάρεις την τελευταία έκδοση. Δες ποια είναι αυτή, καθώς και πότε έχουν σκοπό να βγάλουν την επόμενη έκδοση πριν την αγορά. Ίσως να είναι κακή εποχή για επένδυση, αν και τα καλά βιβλία για την C++20 θα κάνουν τουλάχιστον 12 μήνες να εμφανιστούν. Αλλά τις αλλαγές που θα φέρει η C++20 δεν θα τις δεις στο πρώτο ή δεύτερο εξάμηνο ασχολίας με την γλώσσα. Και η πολύ σημαντική αλλαγή, τα modules που καταργούν την λογική των include files θα πάρει περισσότερο χρόνο στις βιβλιοθήκες να την ακολουθήσουν.

Α και μάθε πρώτα C++ και μετά C. Αυτή είναι η σωστή σειρά.

ΥΓ: 'Οχι στον Schildt είναι πολύ παλίο

Ξεκίνησα με πιο ελαφριές προθέσεις (λόγω απλών εφαρμογών κυρίως για μικροελεγκτές κτλ) να πάω απο τη C στην C++, αλλά τώρα με βάλατε σε σκέψεις για πιο βαθιά νερά.
Σας ευχαριστώ πολύ για τις πληροφορίες.

2 Likes

Αν μιλάμε για μικροελεκτες η κατάσταση είναι ελαφρά διαφορετική. Κατ αρχήν εξαρτάται από το μοντέλο και το tooling που το συνοδεύει, που δεν είναι πάντα ότι καλύτερο υπάρχει. Σε αυτή την περίπτωση τα δυνατά σημεία της C++ όπως το std::string και το std::vector<> δεν τα θέλεις (όπως γενικά ότι κάνει χρήση του heap), αλλά και πάλι τα απλά πράγματα που έχει προσθέσει η C++ όπως το function overloading, το const, το auto, αλλά και το std::array<> με STL είναι εξαιρετικά χρήσιμα.

Αν μιλάμε για Arduino η γλώσσα είναι C++ αν και πολύς κόσμος νομίζει πως είναι απλή C.

Υπάρχει και ένα βιβλίο στην Ανοιχτή Βιβλιοθήκη, του 2015, που σου επιτρέπει να το κατεβάσεις ελεύθερα :


Δεν το έχω διαβάσει αλλά καλό είναι να το έχεις υπόψη σου.
1 Like

Ναι το είδα και εγώ εχθές. Είναι χρήσιμο.

3 Likes