cpp:operator_overloading
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:operator_overloading [2017/05/04 14:33] – gthanos | cpp:operator_overloading [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Υπερφόρτωση τελεστών ====== | ====== Υπερφόρτωση τελεστών ====== | ||
| - | Η C++ επιτρέπει την // | + | Η C++ επιτρέπει την // |
| <code cpp Time.cpp> | <code cpp Time.cpp> | ||
| Line 79: | Line 79: | ||
| <WRAP info 80% center round> | <WRAP info 80% center round> | ||
| - | Οι τελεστές μπορούν να κατηγοριοποιηθούν σε δύο βασικές κατηγορίες, | + | Οι τελεστές μπορούν να κατηγοριοποιηθούν σε δύο βασικές κατηγορίες, |
| - | Δυαδικοί τελεστές είναι εκείνοι που έχουν δύο | + | Οι παράμετροι των τελεστών στο εξής θα καλούνται τελεστέοι. |
| - | Τόσο οι μοναδιαίοι τελεστές όσο και οι δυαδικοί τελεστές είναι δυνατόν να μεταβάλλουν ή να μη μεταβάλλουν το αντικείμενο στο οποίο εφαρμόζονται. | + | // |
| + | |||
| + | Τόσο οι //μοναδιαίοι// τελεστές όσο και οι //δυαδικοί// τελεστές είναι δυνατόν να μεταβάλλουν ή να μη μεταβάλλουν το αντικείμενο στο οποίο εφαρμόζονται. | ||
| </ | </ | ||
| Οι συναρτήσεις υπερφόρτωσης χωρίζονται σε δύο βασικές κατηγορίες **//α)//** μέλη της κλάσης και **//β)//** φιλικές συναρτήσεις. Για κάθε μία από τις παραπάνω δύο κατηγορίες ισχύουν τα εξής: | Οι συναρτήσεις υπερφόρτωσης χωρίζονται σε δύο βασικές κατηγορίες **//α)//** μέλη της κλάσης και **//β)//** φιλικές συναρτήσεις. Για κάθε μία από τις παραπάνω δύο κατηγορίες ισχύουν τα εξής: | ||
| * **μέλη της κλάσης: | * **μέλη της κλάσης: | ||
| - | * Για μοναδιαίους τελεστές οι συναρτήσεις μέλη θεωρούν ο τελεστέος είναι το αντικείμενο που ανήκει η συνάρτηση. Συνήθως οι μοναδιαίοι τελεστές δεν έχουν ορίσματα. Εξαίρεση αποτελούν οι τελεστές αύξησης ή μείωσης κατά ένα (%%++ ή --%%) όταν αυτοί εφαρμόζονται στα δεξιά του αντικειμένου (//postfix increment/ | + | * Για μοναδιαίους τελεστές οι συναρτήσεις μέλη θεωρούν ο τελεστέος είναι το αντικείμενο στο |
| - | * Για δυαδικούς τελεστές οι συναρτήσεις υπερφόρτωσης θεωρούν ότι ο αριστερός τελεστέος είναι το αντικείμενο στο οποίο ανήκει η συνάρτηση και ο δεξιός τελεστέος δίνεται ως παράμετρος. | + | * Για δυαδικούς τελεστές οι συναρτήσεις υπερφόρτωσης θεωρούν ότι ο αριστερός τελεστέος είναι το αντικείμενο στο οποίο ανήκει η συνάρτηση και ο δεξιός τελεστέος δίνεται ως η μοναδική |
| * **φιλικές συναρτήσεις της κλάσης: | * **φιλικές συναρτήσεις της κλάσης: | ||
| - | * Για μοναδιαίους τελεστές οι φιλικές συναρτήσεις θεωρούν ότι ο τελεστέος είναι το μοναδικό όρισμα της συνάρτησης. Εξαίρεση αποτελούν οι τελεστές αύξησης ή μείωσης κατά ένα (%%++ ή --%%) όταν αυτοί εφαρμόζονται στα δεξιά του αντικειμένου (//postfix increment/ | + | * Για μοναδιαίους τελεστές οι φιλικές συναρτήσεις θεωρούν ότι ο τελεστέος είναι το μοναδικό όρισμα της συνάρτησης. Εξαίρεση αποτελούν οι τελεστές αύξησης ή μείωσης κατά ένα (%%++ ή --%%) όταν αυτοί εφαρμόζονται στα δεξιά του αντικειμένου (//postfix increment/ |
| - | * Για δυαδικούς τελεστές οι φιλικές συναρτήσεις υπερφόρτωσης | + | * Για δυαδικούς τελεστές οι φιλικές συναρτήσεις υπερφόρτωσης |
| - | + | ||
| Ο παρακάτω πίνακας δίνει τη μορφή της συνάρτησης υπερφόρτωσης για τους τελεστές που είναι διαθέσιμοι προς υπεφόρτωση. Αντικαταστήστε τον χαρακτήρα '' | Ο παρακάτω πίνακας δίνει τη μορφή της συνάρτησης υπερφόρτωσης για τους τελεστές που είναι διαθέσιμοι προς υπεφόρτωση. Αντικαταστήστε τον χαρακτήρα '' | ||
| - | ^ Έκφραση | + | ^ Έκφραση |
| | @a | %%+ - * & ! ~ ++ --%% | A:: | | @a | %%+ - * & ! ~ ++ --%% | A:: | ||
| | a@ | %%++ --%% | A:: | | a@ | %%++ --%% | A:: | ||
| Line 107: | Line 108: | ||
| Οι τελεστές που δεν υπερφορτώνονται είναι οι εξής: | Οι τελεστές που δεν υπερφορτώνονται είναι οι εξής: | ||
| - | | :: | .* | . | ?: | | + | | |
cpp/operator_overloading.1493908392.txt.gz · Last modified: 2017/05/04 13:33 (external edit)
