Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision |
cpp:classes [2021/05/06 23:57] – [Διάκριση μεταξύ δήλωσης της κλάσης και υλοποίησης της κλάσης] gthanos | cpp:classes [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 |
---|
</code> | </code> |
| |
Οι δύο παραπάνω τρόποι ορισμού μιας μεθόδου της κλάσης είναι ισοδύναμοι με την διαφορά ότι η μέθοδος //setHeight// ορίζεται ως //inline// ακόμη και εάν η λέξη //inline// δεν αναφέρεται ρητά. Ο λόγος που η //setHeight// γίνεται //inline// είναι για να αποφευχθεί το πρόβλημα των περισσότερων του ενός ορισμών της ίδιας μεθόδου σε επιμέρους μεταγλωττισμένα αρχεία του ιδίου προγράμματος. Ο //compiler// προλαμβάνει το συγκεκριμένο πρόβλημα κάνοντας την μέθοδο //inline//. | Οι δύο παραπάνω τρόποι ορισμού μιας μεθόδου της κλάσης είναι ισοδύναμοι με την διαφορά ότι η μέθοδος //setHeight// ορίζεται ως //inline// ακόμη και εάν η λέξη //inline// δεν αναφέρεται ρητά. Ο λόγος που η //setHeight// γίνεται //inline// είναι για να αποφευχθεί το πρόβλημα των περισσότερων του ενός ορισμών της ίδιας μεθόδου σε επιμέρους μεταγλωττισμένα αρχεία του ιδίου προγράμματος, μέσω της συμπερίληψης (#include) του αρχείου .hpp από περισσότερα του ενός αρχεία .cpp στο ίδιο πρόγραμμα. Ο //compiler// προλαμβάνει το συγκεκριμένο πρόβλημα κάνοντας την μέθοδο //inline//. |
| |
Για τον ορισμό της μεθόδου //setWidth// εκτός της κλάσης είναι απαραίτητη η χρήση του ονόματος της κλάσης ακολουθούμενη από το //scope operator// **Rectangle::**setWidth(int w). Η χρήση του //scope operator// εξασφαλίζει ότι η μέθοδος ανήκει στην κλάση και δεν αποτελεί αυτόνομη συνάρτηση του προγράμματος. | Για τον ορισμό της μεθόδου //setWidth// εκτός της κλάσης είναι απαραίτητη η χρήση του ονόματος της κλάσης ακολουθούμενη από το //scope operator// **Rectangle::**setWidth(int w). Η χρήση του //scope operator// εξασφαλίζει ότι η μέθοδος ανήκει στην κλάση και δεν αποτελεί αυτόνομη συνάρτηση του προγράμματος. |