Διαφορά κλειδιού: Η C ++ είναι μια γλώσσα αντικειμενοστραφής που επικεντρώνεται κυρίως σε αντικείμενα. Μια κλάση στην C ++ μπορεί να οριστεί ως μια συλλογή σχετικών μεταβλητών και λειτουργιών που είναι εγκλεισμένες σε μια ενιαία δομή. Οι περιπτώσεις της κλάσης ονομάζονται αντικείμενα. Μια δομή στη C ++ μπορεί να αναφέρεται ως ένας τύπος δεδομένων που ορίζει ο χρήστης και έχει τις δικές του λειτουργίες. Σε αντίθεση με τη γλώσσα C, και οι δύο είναι αρκετά όμοιοι στην C ++. Η κύρια διαφορά που υπάρχει μεταξύ τους αφορά τον τροποποιητή πρόσβασης. τα μέλη μιας κατηγορίας είναι ιδιωτικά από προεπιλογή, ενώ τα μέλη ενός struct είναι δημόσια από προεπιλογή.
Μια κλάση στην C ++ είναι απλώς μια επέκταση μιας δομής που χρησιμοποιείται στη γλώσσα C. Είναι ένας τύπος δεδομένων που ορίζει ο χρήστης. Στην πραγματικότητα δεσμεύει τα δεδομένα και τις συναφείς λειτουργίες τους σε μία μονάδα. Μια δομή και μια κλάση στη γλώσσα C διαφέρει πολύ, καθώς η δομή έχει περιορισμένη λειτουργικότητα και χαρακτηριστικά σε σύγκριση με μια τάξη. Από την άλλη πλευρά, η δομή και η τάξη στην C ++ είναι αρκετά όμοια. Η κύρια διαφορά προκύπτει από το γεγονός ότι, εξ ορισμού, όλα τα μέλη μιας κατηγορίας είναι ιδιωτικά, ενώ από προεπιλογή όλα τα μέλη μιας δομής είναι δημόσια.
Σύγκριση μεταξύ κατηγορίας και δομής σε C ++:
Τάξη | Δομή | |
Ορισμός | Μια κλάση στην C ++ μπορεί να οριστεί ως μια συλλογή σχετικών μεταβλητών και λειτουργιών που είναι εγκλεισμένες σε μια ενιαία δομή. | Μια δομή μπορεί να αναφέρεται ως ένας τύπος δεδομένων ορισμένος από το χρήστη ο οποίος διαθέτει τις δικές του λειτουργίες. |
Λέξη-κλειδί για τη δήλωση | Τάξη | Struct |
Προεπιλεγμένος προσδιοριστής πρόσβασης | Ιδιωτικός | Δημόσιο |
Παράδειγμα | class myclass { ιδιωτικός: int δεδομένα? δημόσιο: myclass (int δεδομένα_): δεδομένα (δεδομένα_) {} εικονικό κενό foo () = 0; virtual class () {} }, | struct myclass { ιδιωτικός: int δεδομένα? δημόσιο: myclass (int δεδομένα_): δεδομένα (δεδομένα_) {} εικονικό κενό foo () = 0; virtual class () {} }, |
Σκοπός | Αφαίρεση δεδομένων και περαιτέρω κληρονομικότητα | Γενικά, ομαδοποίηση δεδομένων |
Τύπος | Αναφορά | αξία |
Χρήση | Γενικά χρησιμοποιείται για μεγάλα ποσά δεδομένων. | Γενικά χρησιμοποιείται για μικρότερες ποσότητες δεδομένων. |