Προς το περιεχόμενο
  • Εγγραφή
  • 0

Διαφορές C, C++ και C#


xrist0f0r0s

Ερώτηση

  • Απαντήσεις 168
  • Δημιουργία
  • Τελευταία απάντηση

Συχνή συμμετοχή στην ερώτηση

Συχνή συμμετοχή στην ερώτηση

Δημοφιλή Μηνύματα

Η παραπληροφόρηση που υπάρχει σε αυτό το topic δεν έχει προηγούμενο. To ότι ξέρει κάποιος το συντακτικό μιας γλώσσας δε πάει να πει ότι ξέρει και την γλώσσα. Το ότι ξέρει κάποιος C δε σημαίνει ότι ξέρ

Kι όμως, η γλώσσα με την οποία φτάσαμε πιο μακριά είναι η Fortran όσο απίστευτο κι αν ακούγεται :   Σκεφτείτε μόνον ότι με αυτήν πήγαν τα επανδρωμένα Αpollo 11 - 14 στη σελήνη. Το Viking στον Αρη.

Δημοσιευμένες Εικόνες

Προτεινόμενες αναρτήσεις

  • 0

Γνώμη μου είναι να μην ασχοληθείς με τις διαφορές αλλά να ξεκινήσεις να μαθαίνεις C :)

Για C# δεν γνωρίζω αλλά η C++ είναι C με αντικειμενοστρεφή προγραμματισμό (Object Oriented Programming).

 

φιλικά,

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Επειδη η C ειναι παλια, προσθεσαν αρκετα πραγματα κι εφτιαξαν τη C++ (οπου καλυπτει τις συγχρονες αναγγες ενος προγραμματιστη) και πλεον οι compilers της C μεταφραζουν και C++, αρα εσυ που στην πραγματικοτητα μαθαινεις C, στο βιογραφικο σου πχ θα πεις C/C++ (στην ουσια ομως ειναι C).

Η C++ καθαυτου, μοιζει με τη C, αλλα ειναι αντικειμενοστραφεις.

Η C# ειναι μια γλωσσα της microsoft (.NET) οπου "παντρεψε" τη C++ με τη java.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Αν εχεις περπατισει λιγο στη C κι εχεις δει τι και πως δουλευουν οι συναρτυσεις, τοτε "εμαθες" τον Δομημενο προγραμματισμο (procedural programming).

Στον αντικειμενοστρεφη, απλα δουλευεις λιγο αλλιωτηκα, δηλαδη κανεις μια συναρτυση Add(...), αν για ορισματα δοσεις ακαιρεους σου επειστρεφει το αθροισμα, αν δοσεις strings σου επιστρεφει ενα string που ειναι εννομενα τα ορισματα, το ενα μετα το αλλο, αν δοσεις bool επιστρεφει το λογικο ΚΑΙ των ορισματων... κ.ο.κ.

(ισως λιγο αστοχο παραδειγμα, αλλα δε ξερω τις γνωσεις σου και δε θελω να σε μπερδεψω)

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Στη C++ θεωρητικα μπορεις να γραψεις C και να πανε ολα καλά.. Υπάρχουν και καθαροί compiler για C μονο . Η microsoft νομιζω πως δεν κανει σαφη διακριση αν και στο ide υπάρχει καποιου ειδους .. και με καταληξη αρχειων κτλ..

 

Γενικά με C/C++ προγραμματιζεις τα παντα σχεδον. Αντικειμενοστρεφής προγραμματισμος ειναι ολοκληρη θεωρια αλλα γενικα σκεψου πως ειναι οτι θεωρεις διαφορα πραγματα σαν αντικειμενα.. Αν φτιαχνεις δλδ προγραμμα με αυτοκινητα μπορεις να κανεις ενα αντικειμενο αυτοκινητου με καποια χαρακτηριστικά πχ.. ταχύτητα, χρωμα κτλ.. Μπορεις να κανεις βαση ενος προτύπου πολλα αυτοκινητα μετα κτλ.. Αυτο δε διαφερει πολυ απο struct-δομη της C αλλά τα αντικείμενα κτλ εχουν πολυ περισσότερες δυνατότητες..

 

Υπάρχει και managed C/C++ που σημαίνει οτι δε χρειάζεται να ελευθερωνεις τη μνημη που χρησιμοποιεις οταν δε τη χρειάζεσαι χειροκινητα αλλα γινεται αυτοματα (χονδρικά)

 

H C# ειναι μονο managed γλώσσα και περα απο αυτο δεν μεταφραζεται σε assembly οπως η C++/C .Γενικά ειναι πιο ευκολη για εφαρμογες πιο υψηλου επιπεδου..

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

στην C++ ας πούμε ότι προστέθηκαν οι κλάσεις που είναι παρόμοιες με τις δομές μόνο που έχουν ενσωματωμένες μεθόδους(συναρτήσεις)

π.χ. ίσως να έχεις δεις την κλάση string όπου χρησιμοποιείτε για τα αλφαριθμητικά έναντι τον πινάκων char στην C,

αλλά γενικά έχουν προστεθεί πολλά πράγματα.

 

Όσο για την C# είναι η Java της Microsoft όπως θα μπορούσαμε να την αποκαλέσουμε, μία μεγάλη διαφορά που έχει είναι ότι τρέχει σε virtual machine το κάθε πρόγραμμα το .Net Framework

όπως και στην java υπάρχει το JVM(Java Virtual Machine) έτσι με αυτόν τον τρόπο υποτίθεται ότι μπορεί ένα πρόγραμμα που έχει γραφτεί στην C# με το κατάλληλο .Net Framework για Ubuntu να μπορούσε να τρέξει το ίδιο πρόγραμμα αυτούσιου και στα Ubuntu ή π.χ. σε Mac πάλι αντίστοιχα με το σωστό VM(Virtual Machine)

 

ελπίζω να μην σε μπέρδεψα..

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

οχι

τωρα αποφασισα να ξεκινησω c/c++ και θα ηθελα να μαθω εαν ενα προγραμμα με τον ιδιο κωδικα μπορει να πεξει σε win και linux το ιδιο ή θα πρεπει να αλαξεις των κωδικα παντα σε c

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

θα ηθελα να μαθω εαν ενα προγραμμα με τον ιδιο κωδικα μπορει να πεξει σε win και linux το ιδιο ή θα πρεπει να αλαξεις των κωδικα παντα σε c

Η C εχει πολλα API αυτο που λες εσυ ειναι το standard*, δηλαδη ο κωδικας γινεται compile σε ολα τα λειτουργικα χωρις καμια αλλαγη, βεβαια εχεις περιορισμενες δυνατοτητες...

*(νομιζω λεγεται και Posix C)

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Δοκίμασε αυτο(C How to Program (5th Edition)By Paul J. Deitel).

Το είχαμε στη σχολή μας όταν μαθαίναμε C.

Είναι ικανοποιητικά κατανοητό.

Έχει πολλά παραδείγματα και ασκήσεις για να εξασκηθείς.

Έχει και εισαγωγή στην C++.

 

**Απ' ότι θυμάμαι είναι και στα ελληνικά.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Όσο για την C# είναι η Java της Microsoft όπως θα μπορούσαμε να την αποκαλέσουμε, μία μεγάλη διαφορά που έχει είναι ότι τρέχει σε virtual machine το κάθε πρόγραμμα το .Net Framework

όπως και στην java υπάρχει το JVM(Java Virtual Machine) έτσι με αυτόν τον τρόπο υποτίθεται ότι μπορεί ένα πρόγραμμα που έχει γραφτεί στην C# με το κατάλληλο .Net Framework για Ubuntu να μπορούσε να τρέξει το ίδιο πρόγραμμα αυτούσιου και στα Ubuntu ή π.χ. σε Mac πάλι αντίστοιχα με το σωστό VM(Virtual Machine)

 

ελπίζω να μην σε μπέρδεψα..

 

Και η Apple έχει emulator των Windows.

Δηλαδή ένα πρόγραμμα γραμμένο εξ ολοκλήρου σε C/C++ για περιβάλλον Windows δουλεύει και στα Apple μέσω της Windows Virtual Machine.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Δοκίμασε αυτο(C How to Program (5th Edition)By Paul J. Deitel).

Το είχαμε στη σχολή μας όταν μαθαίναμε C.

Είναι ικανοποιητικά κατανοητό.

Έχει πολλά παραδείγματα και ασκήσεις για να εξασκηθείς.

Έχει και εισαγωγή στην C++.

 

**Απ' ότι θυμάμαι είναι και στα ελληνικά.

 

απο το amazon δεν μπορεις να πληρωσεις με Paypal ?

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

ξερετε καποιο καλλο βιβλιο για αγορα αγλικα ή ελληνικα (προτιμω ελληνικα )

ειμαι αρχαριος αλλα αυτο πιστευω το καταλαβετε :P

 

θα σου πρότεινα αυτό για αρχή

Οδηγός της C++, Schild Herbert, Εκδόσεις Γκιούρδας Μ, Αθήνα 2000, είναι καλό βιβλίο, καταλαβαίνεις τι λέει αλλά δεν έχει βάθος, γι'αυτό ->

 

μετά αφού μάθεις την θεωρία στο περίπου τότε αγόρασε ένα του Deitel & Deitel

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Η παραπληροφόρηση που υπάρχει σε αυτό το topic δεν έχει προηγούμενο. To ότι ξέρει κάποιος το συντακτικό μιας γλώσσας δε πάει να πει ότι ξέρει και την γλώσσα. Το ότι ξέρει κάποιος C δε σημαίνει ότι ξέρει C++ (και το ανάποδο βεβαίως). H μόνη σχέση που έχουν αυτές οι γλώσσες είναι ότι η C++ βασίστηκε στη φιλοσοφία της C (κληρονομώντας και το συντακτικό της), η οποία έλεγε πως ο προγραμματιστής δεν θα πρέπει να πληρώνει (σε χρόνο/χώρο) για features της γλώσσας που δε χρησιμοποιεί.Aπό κει και πέρα είναι δύο εντελώς διαφορετικές γλώσσες.

 

Για την ακρίβεια ο Stroustrap (δημιουργός της C++) κατασκεύασε έναν preprocessor που ονόμασε C with Classes, ο οποίος μετέτρεπε κάποιες αντικειμενοστρεφείς μακροεντολές σε μακροεντολές preprocessor C. Μετά ξεκίνησε η δημιουργία του πρώτου compiler C++. Όποιος ενδιαφέρεται μπορεί να διαβάσει το 'The Design and Evolution of C++'.

 

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

 

Στον αντίποδα, ένας προγραμματιστής C που θα πάει να γράψει κώδικα σε C++, θα έχει πρόβλημα με την σχεδίαση του κώδικα καθώς η μία γλώσσα χρησιμοποιείται εντελώς διαφορετικά από την άλλη σε επίπεδο τεχνολογίας λογισμικού. Λογικό όταν η μια είναι διαδικαστική και η άλλη multi-paradigm, που χρησιμοποιείται για τις αντικειμενοστρεφής της ιδιότητες στο 90% των περιπτώσεων.

Θύμαμαι ένα άρθρο που διάβασα, ότι στη δεκαετία του 90' που κάναν migrate πολλές εταιρίες από C σε C++, παρατηρούταν το φαινόμενο ότι οι προγραμματιστές απλά γράφαν C χρησιμοποιώντας που και που κανα αντικείμενο και STL αχρηστεύοντας τις δυνατότητες της γλώσσας. Αν βρω το link θα το ποστάρω.

 

Προσωπικά γράφω κώδικα σε C++ εδώ και 4 χρόνια και ΣΥΝΕΧΩΣ μαθαίνω καινούργια πράγματα (από βιβλία, άρθρα, γράφοντας κώδικα). Νιώθω μλκας για όσες φορές έχω πει σε συζήτηση 'ξέρω C++', παπάρια ξέρω.

 

Οπότε δε θα συνιστούσα σε κανέναν που γράφει κώδικα σε C να γράψει στο βιογραφικό του ότι ξέρει να γράφει και σε C++ γιατί με πολύ μεγάλη πιθανότητα θα βρεθεί προ εκπλήξεων.

 

@original poster.

η C# τώρα είναι μια εξαιρετική γλώσσα ποργραμματισμού η οποία δημιουργήθηκε για να καλύψει τις αδυναμίες της C++ και κυρίως της JAVA.

Είναι πολύ παραγωγική και μπορείς να κάνεις σχεδόν τα πάντα με αυτή. Το μειονέκτημά της είναι ότι δε μπορείς να πετύχεις την ταχύτητα που θα πετύχαινες σε C ή C++ σε μια εφαρμογή απαιτητική σε πόρους και χρόνο (πχ ένας web server, ένα high-end παιχνίδι, ένα λειτουργικό σύστημα). Αυτό βέβαια δεν ενδιαφέρει τον μέσο προγραμματιστή, πχ. μπορείς να δεις στο youtube πολλά casual ή χαμηλών απαιτήσεων παιχνίδια που έχουν γραφεί σε C#.

 

Οπότε η επιλογή εξαρτάται από τον λόγο τον οποίο θες να μάθεις μια γλώσσα προγραμματισμού.

Αν είναι για λόγους επαγγελματικής αποκατάστασης, μάθε C γιατί εκτός από μια γλώσσα θα μάθεις τι θα πει πραγματικός προγραμματισμός.

Αν το θες για hobby, μάθε C# για να έχεις αποτελέσματα σε πολύ λιγότερο χρόνο. H C# ενδιαφέρεται για την ψυχική υγεία των προγραμματιστών της, η C και η C++ δε δίνουν δεκάρα.

 

Σόρρυ για το post-σεντόνι.

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.