User Tools

Site Tools


cpp:operator_overloading

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cpp:operator_overloading [2020/04/28 08:20] gthanoscpp:operator_overloading [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
 ====== Υπερφόρτωση τελεστών ====== ====== Υπερφόρτωση τελεστών ======
  
-Η C++ επιτρέπει την //υπεφόρτωση// των περισσότερων από τους διαθέσιμους τελεστές της γλώσσας. Με τον όρο //υπεφόρτωση// εννοούμε τον ορισμό μιας νέας συμπεριφοράς για τον τελεστή όταν αυτός εφαρμόζεται όχι σε βασικούς τύπους δεδομένων, αλλά σε αναφορικούς τύπους δεδομένων. Για παράδειγμα, στην παρακάτω κλάση //Time// τι θα γίνει εάν προσθέσουμε δύο αντικείμενα της κλάσης αυτής;+Η C++ επιτρέπει την //υπεφόρτωση// των περισσότερων από τους διαθέσιμους τελεστές της γλώσσας. Με τον όρο //υπεφόρτωση// εννοούμε τον ορισμό μιας νέας συμπεριφοράς για τον τελεστή όταν αυτός εφαρμόζεται όχι σε βασικούς τύπους δεδομένων, αλλά σε σύνθετους τύπους δεδομένων που περιγράφονται από κλάσεις. Για παράδειγμα, στην παρακάτω κλάση //Time// τι θα γίνει εάν προσθέσουμε δύο αντικείμενα της κλάσης αυτής;
  
 <code cpp Time.cpp> <code cpp Time.cpp>
Line 98: Line 98:
 Ο παρακάτω πίνακας δίνει τη μορφή της συνάρτησης υπερφόρτωσης για τους τελεστές που είναι διαθέσιμοι προς υπεφόρτωση. Αντικαταστήστε τον χαρακτήρα ''@'' με τον εκάστοτε τελεστή.  Ο παρακάτω πίνακας δίνει τη μορφή της συνάρτησης υπερφόρτωσης για τους τελεστές που είναι διαθέσιμοι προς υπεφόρτωση. Αντικαταστήστε τον χαρακτήρα ''@'' με τον εκάστοτε τελεστή. 
  
-^  Έκφραση  ^  Τελεστής  ^  Υπερφόρτωση ως μέλος της κλάσης  ^  Υπερφόρτωση ως φιλική συνάρτηση  ^+^  Έκφραση  ^  Τελεστής  ^  Υπερφόρτωση ως μέλος της κλάσης   Υπερφόρτωση ως φιλική συνάρτηση της κλάσης A  ^
 |  @a  | %%+ - * & ! ~ ++ --%%  |  A::operator@()  |  operator@(A)  | |  @a  | %%+ - * & ! ~ ++ --%%  |  A::operator@()  |  operator@(A)  |
 |  a@  | %%++ --%%  |  A::operator@(int)  |  operator@(A,int)  | |  a@  | %%++ --%%  |  A::operator@(int)  |  operator@(A,int)  |
cpp/operator_overloading.1588062053.txt.gz · Last modified: 2020/04/28 07:20 (external edit)