User Tools

Site Tools


cpp:classes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:classes [2020/04/08 08:18] – [Κλάσεις και Αντικείμενα] gthanoscpp:classes [2020/04/08 08:21] – [Διάκριση μεταξύ δήλωσης της κλάσης και υλοποίησης της κλάσης] gthanos
Line 62: Line 62:
  
 Ο λόγος που διακρίνουμε μία κλάση σε δήλωση και υλοποίηση είναι ότι η δήλωση της κλάσης μπορεί να χρειαστεί να γίνει //include// από περισσότερα του ενός αρχεία στο ίδιο πρόγραμμα. Η υλοποίηση όμως δεν θέλουμε να συμπεριληφθεί σε περισσότερα του ενός μεταγλωττισμένα αρχεία στο ίδιο πρόγραμμα, διότι ο linker θα διαμαρτύρεται ότι η ίδια συνάρτηση υπάρχει περισσότερες από μία φορές μέσα στο πρόγραμμα. Επιπλέον, δεν είναι καλή πρακτική στον αντικειμενοστραφή προγραμματισμό να αποκαλύπτουμε στον προγραμματιστή χρήστη της κλάσης της εσωτερική υλοποίηση της. Έτσι, μπορούμε να διατηρήσουμε "κρυφή" την υλοποίηση των μεθόδων σε ξεχωριστό αρχείο από τη δήλωση της κλάσης. Ο λόγος που διακρίνουμε μία κλάση σε δήλωση και υλοποίηση είναι ότι η δήλωση της κλάσης μπορεί να χρειαστεί να γίνει //include// από περισσότερα του ενός αρχεία στο ίδιο πρόγραμμα. Η υλοποίηση όμως δεν θέλουμε να συμπεριληφθεί σε περισσότερα του ενός μεταγλωττισμένα αρχεία στο ίδιο πρόγραμμα, διότι ο linker θα διαμαρτύρεται ότι η ίδια συνάρτηση υπάρχει περισσότερες από μία φορές μέσα στο πρόγραμμα. Επιπλέον, δεν είναι καλή πρακτική στον αντικειμενοστραφή προγραμματισμό να αποκαλύπτουμε στον προγραμματιστή χρήστη της κλάσης της εσωτερική υλοποίηση της. Έτσι, μπορούμε να διατηρήσουμε "κρυφή" την υλοποίηση των μεθόδων σε ξεχωριστό αρχείο από τη δήλωση της κλάσης.
 +
 +<WRAP important 80% center round>
 +Στη συνέχεια, για λόγους οικονομίας χώρου και ευκολότερης μεταγλώττισης του κώδικα πολλά παραδείγματα θα εμφανίζουν τη δήλωση της κλάσης και την υλοποίηση των μεθόδων της στο ίδιο αρχείο. Πρέπει να έχετε υπόψη σας ότι αυτό αν και δεν είναι λάθος, δεν μπορεί παρά να εφαρμοστεί σε πολύ απλά και περιορισμένου εύρους προγράμματα.
 +</WRAP>
  
  
cpp/classes.txt · Last modified: 2021/05/06 23:01 (external edit)