Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
cpp:functions [2021/04/27 07:29] gthanos [Κλήση με τιμή και κλήση με αναφορά] |
cpp:functions [2021/04/27 07:29] gthanos [Κλήση με τιμή και κλήση με αναφορά] |
| Παρατηρήστε ότι μετά την έξοδο από τις μεθόδους //powerOf2Ref// και //powerOf2Ptr// η μεταβλητή ''a'' έχει αλλάξει τιμή κάτι που δεν ισχύει μετά την έξοδο από την //powerOf2//. | Παρατηρήστε ότι μετά την έξοδο από τις μεθόδους //powerOf2Ref// και //powerOf2Ptr// η μεταβλητή ''a'' έχει αλλάξει τιμή κάτι που δεν ισχύει μετά την έξοδο από την //powerOf2//. |
| |
| <WRAP center round info 80%> | <WRAP center round tip 80%> |
| Κατά την κλήση μίας συνάρτησης, όταν θέλουμε να περάσουμε αντικείμενα που περιέχουν μεγάλο όγκο πληροφορίας είναι προτιμότερο να τα περάσουμε με αναφορά ακόμη και εάν δεν επιθυμούμε οι πιθανές αλλαγές στις τυπικές παραμέτρους να είναι ορατές μετά την κλήση της συνάρτησης. Ο λόγος είναι ότι η κλήση με αναφορά έχει σταθερό κόστος αντιγραφής ισοδύναμο με το μήκος μίας διεύθυνσης μνήμης, ενώ η αντιγραφή ενός μεγάλου αντικειμένου έχει κόστος όσο το μέγεθος του αντικειμένου. | Κατά την κλήση μίας συνάρτησης, όταν θέλουμε να περάσουμε αντικείμενα που περιέχουν μεγάλο όγκο πληροφορίας είναι προτιμότερο να τα περάσουμε με αναφορά ακόμη και εάν δεν επιθυμούμε οι πιθανές αλλαγές στις τυπικές παραμέτρους να είναι ορατές μετά την κλήση της συνάρτησης. Ο λόγος είναι ότι η κλήση με αναφορά έχει σταθερό κόστος αντιγραφής ισοδύναμο με το μήκος μίας διεύθυνσης μνήμης, ενώ η αντιγραφή ενός μεγάλου αντικειμένου έχει κόστος όσο το μέγεθος του αντικειμένου. |
| |