Giorgos3924 Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Μπορεί κάποιος να μου εξηγήσει ποια είναι η ουσιαστική διαφορά των αντικειμένων και των κλάσεων από την δομή και τις μεταβλητές δομής στη C; Ξεκίνησα να διαβάζω για C++ και απ' ότι βλέπω δεν υπάρχει κάποια ουσιαστική διαφορά εκτός αν κάτι δεν κατάλαβα ή δεν πρόσεξα. Η μόνη διαφορά που είδα μέχρι τώρα είναι οι ονομασίες. Ποιό είναι αυτό που δίνει τη "φυσική οντότητα" στο αντικείμενο μιας κλάσης; Τί προσφέρει η κλάση που δεν προσφέρει η δομή στη C;
Giorgos3924 Δημοσ. 21 Αυγούστου 2010 Μέλος Δημοσ. 21 Αυγούστου 2010 Μπορεί κάποιος να μου εξηγήσει ποια είναι η ουσιαστική διαφορά των αντικειμένων και των κλάσεων από την δομή και τις μεταβλητές δομής στη C; Ξεκίνησα να διαβάζω για C++ και απ' ότι βλέπω δεν υπάρχει κάποια ουσιαστική διαφορά εκτός αν κάτι δεν κατάλαβα ή δεν πρόσεξα. Η μόνη διαφορά που είδα μέχρι τώρα είναι οι ονομασίες. Ποιό είναι αυτό που δίνει τη "φυσική οντότητα" στο αντικείμενο μιας κλάσης; Τί προσφέρει η κλάση που δεν προσφέρει η δομή στη C;
Cue Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Ομιλία σχετικά με το τι είναι αντικειμενοστραφής προγραμματισμός στα ελληνικά
Cue Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Ομιλία σχετικά με το τι είναι αντικειμενοστραφής προγραμματισμός στα ελληνικά
RubiksCube Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Οι κλάσσεις συνοδεύονται από methods. Αντιθέτως στην C πρέπει να περάσεις την δομή σαν παράμετρο για να την χρησιμοποιήσεις μέσα σε μια function. Επίσης στις κλάσσεις υπάρχει το concept του inheritance που δεν υπάρχει στις κλάσσεις. Αυτή είναι αρκετά σημαντική διαφορά, καθώς επηρεάζει όλο το design ενός προγράμματος. Ξέχασα να αναφέρω την διαφορά των class methods (δηλαδή static σε ορολογία java) από τις instance methods. Πάντως, οσο συνεχίζεις να διαβάζεις θα πέσεις πάνω στις διαφορές και θα τις καταλάβεις και μόνο σου πιστεύω.
RubiksCube Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Οι κλάσσεις συνοδεύονται από methods. Αντιθέτως στην C πρέπει να περάσεις την δομή σαν παράμετρο για να την χρησιμοποιήσεις μέσα σε μια function. Επίσης στις κλάσσεις υπάρχει το concept του inheritance που δεν υπάρχει στις κλάσσεις. Αυτή είναι αρκετά σημαντική διαφορά, καθώς επηρεάζει όλο το design ενός προγράμματος. Ξέχασα να αναφέρω την διαφορά των class methods (δηλαδή static σε ορολογία java) από τις instance methods. Πάντως, οσο συνεχίζεις να διαβάζεις θα πέσεις πάνω στις διαφορές και θα τις καταλάβεις και μόνο σου πιστεύω.
javavall Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 In C++, a structure is a class defined with the struct keyword. Its members and base classes are public by default. A class defined with the class keyword has private members and base classes by default. This is the only difference between structs and classes in C++.
javavall Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 In C++, a structure is a class defined with the struct keyword. Its members and base classes are public by default. A class defined with the class keyword has private members and base classes by default. This is the only difference between structs and classes in C++.
V.I.Smirnov Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Παρεμπιπτόντως μια που συζητάμε για κλάσεις, ένα θέμα που συνήθως δεν τυγχάνει προσοχής είναι η σειρά με την οποία αρχικοποιούνται οι στατικές κλάσεις (static classes) όταν ξεκινά να τρέχει το πρόγραμμα. Κάποτε μου χρειάστηκε να γίνεται αρχικοποίηση στατικών κλάσεων με συγκεκριμένη σειρά. Αντίθετα απ' ότι νόμιζα, η τελεσίδικη λύση αυτού του προβλήματος είναι δύσκολη....
Evgenios1 Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Μπορεί κάποιος να μου εξηγήσει ποια είναι η ουσιαστική διαφοράτων αντικειμένων και των κλάσεων από την δομή και τις μεταβλητές δομής στη C; Ξεκίνησα να διαβάζω για C++ και απ' ότι βλέπω δεν υπάρχει κάποια ουσιαστική διαφορά εκτός αν κάτι δεν κατάλαβα ή δεν πρόσεξα. Η μόνη διαφορά που είδα μέχρι τώρα είναι οι ονομασίες. Ποιό είναι αυτό που δίνει τη "φυσική οντότητα" στο αντικείμενο μιας κλάσης; Τί προσφέρει η κλάση που δεν προσφέρει η δομή στη C; Ο μηχανισμος του v-table. Ουσιαστικα μια class ειναι ενας struct "με ενα member παραπανω". Για να εχεις μια εικονα... Μια κλασση σε c θα ηταν καπως ετσι >struct c_class { struct { void(*f1)(void); void(*f2)(void); } *VTable; int x,y,z,g,h,j; }; Οπου vtable μας δειχνει που ειναι οι functions
kagelos Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 @Evgenios1 : Καλά τώρα θεωρείς πως έδωσες στον άνθρωπο να καταλάβει τη διαφορά; Όπως είπαν πιο πάνω, η κλάση έχει και συναρτήσεις μέλη, οι οποίες λέγονται μέθοδοι, πέρα από μεταβλητές. Μόλις συνεχίσεις να διαβάζεις θα δεις επίσης και άλλα χαρακτηριστικά όπως κληρονομικότητα (όπου μια κλάση κληρονομεί χαρακτηριστικά από μια άλλη) scope (ποιος μπορεί να έχει πρόσβαση στις μεταβλητές και τις συναρτήσεις μέλη τις κλάσεις) πολυμορφισμός κλπ
Evgenios1 Δημοσ. 21 Αυγούστου 2010 Δημοσ. 21 Αυγούστου 2010 Τι να σου πω karnage, το παιδι τωτησε ποια η διαφορα μεταξυ struct c με class c++, και εγω του απαντησα . Btw TS κανε ενα search για το "virtual table" θα σου λυγουν πολλες αποριες.
GRAPS Δημοσ. 23 Αυγούστου 2010 Δημοσ. 23 Αυγούστου 2010 η δομη στην C ειναι ενας τυπος δεδομενων που οριζεται απο τον χρηστη,προκειμενου να κατασκευαστουν συνθετα προγραμματα.θυμιζει αρκετα αν εχεις ασχοληθει με java τισ κλασεις μια δομη για πχ ειναι struct student { char onoma[20]; char eponumo[30]; int am; float grade; } ; αυτη ειναι μια δομη ομως δεν υπαρχει κληρονομικοτητα των αντικειμενων τις κλασης που φτιαχνεις.ενω στην C++ και στην java υπαρχει
GRAPS Δημοσ. 23 Αυγούστου 2010 Δημοσ. 23 Αυγούστου 2010 η δομη στην C ειναι ενας τυπος δεδομενων που οριζεται απο τον χρηστη,προκειμενου να κατασκευαστουν συνθετα προγραμματα.θυμιζει αρκετα αν εχεις ασχοληθει με java τισ κλασεις μια δομη για πχ ειναι struct student { char onoma[20]; char eponumo[30]; int am; float grade; } ; αυτη ειναι μια δομη ομως δεν υπαρχει κληρονομικοτητα των αντικειμενων τις κλασης που φτιαχνεις.ενω στην C++ και στην java υπαρχει
Erevis Δημοσ. 23 Αυγούστου 2010 Δημοσ. 23 Αυγούστου 2010 Η διαφορά που έχουν τα C structs από τις κλάσεις είναι πως οι κλάσεις εκτός από δεδομένα ενθυλακώνουν και συμπεριφορά. Επίσης συμβάλλουν σε αντικειμενοστρεφείς έννοιες όπως η κληρονομικότητα και ο πολυμορφισμός. Τα C++ structs δεν έχουν καμιά διαφορά εκτός του ότι το default acess specifier τους είναι public ενώ στις κλάσεις private. Βέβαια αν τα μέλη που διαθέτει είναι όλα POD(Plain-old datatypes) όπως ints, floats , booleans τότε και η δομή θεωρείται POD, άρα δε χρειάζεται constructor, copy constructor, destructor και assignment operator.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.