Προς το περιεχόμενο

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


xrist0f0r0s

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

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

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

 

φιλικά,

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

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

 

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

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

στην 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)

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

οχι

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όσο για την 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.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

 

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

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

 

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

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

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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

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

Χρησιμοποιούμε  cookies για να απολαμβάνεις το insomnia προσωποποιημένο στις ανάγκες σου αλλά και για την παροχή στοιχείων επισκεψιμότητας για να βελτιώσουμε την ποιότητα των υπηρεσιών μας