This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
cpp:references [2018/04/25 08:04] gthanos [Αναφορές (References)] |
cpp:references [2021/04/27 05:26] gthanos |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| Μία μεταβλητή τύπου αναφοράς αποτελεί ένα αμετάβλητο δείκτη σε μία υφιστάμενη μεταβλητή. Οι βασικές διαφορές ανάμεσα στις αναφορές και τους δείκτες είναι οι εξής: | Μία μεταβλητή τύπου αναφοράς αποτελεί ένα αμετάβλητο δείκτη σε μία υφιστάμενη μεταβλητή. Οι βασικές διαφορές ανάμεσα στις αναφορές και τους δείκτες είναι οι εξής: | ||
| - | * Κατά την δήλωση μίας αναφοράς είναι υποχρεωτική και η αρχικοποίηση της. Οι δείκτες μπορούν να αρχικοποιηθούν σε οποιοδήποτε σημείου του προγράμματος (εκτός εάν είναι αμετάβλητης διεύθυνσης). | + | * Κατά την δήλωση μίας αναφοράς είναι υποχρεωτική και η αρχικοποίηση της. Οι δείκτες μπορούν να αρχικοποιηθούν σε οποιοδήποτε σημείο του προγράμματος (εκτός εάν είναι αμετάβλητης διεύθυνσης). |
| * Η διεύθυνση στην οποία δείχνει μία αναφορά δεν μπορεί να είναι NULL. Το περιεχόμενο όμως της διεύθυνσης μπορεί να πάρει οποιαδήποτε τιμή (συμπεριλαμβανομένης της τιμής NULL). | * Η διεύθυνση στην οποία δείχνει μία αναφορά δεν μπορεί να είναι NULL. Το περιεχόμενο όμως της διεύθυνσης μπορεί να πάρει οποιαδήποτε τιμή (συμπεριλαμβανομένης της τιμής NULL). | ||
| * Η αναφορά μπορεί να μεταβάλλει το περιεχόμενο της διεύθυνσης στην οποία δείχνει, | * Η αναφορά μπορεί να μεταβάλλει το περιεχόμενο της διεύθυνσης στην οποία δείχνει, | ||
| - | * Η πρόσβαση στο περιεχόμενο μιας αναφοράς γίνεται απευθείας με χρήση του ονόματος της αναφοράς, | + | * Η πρόσβαση στο περιεχόμενο μιας αναφοράς γίνεται απευθείας με χρήση του ονόματος της αναφοράς, |
| Δείτε τα παρακάτω παραδείγματα ορισμού και χρήσης αναφορών | Δείτε τα παρακάτω παραδείγματα ορισμού και χρήσης αναφορών | ||
| Line 75: | Line 75: | ||
| Όταν μία συνάρτηση επιστρέφει μία αναφορά τότε η επιστρεφόμενη τιμής της μπορεί να χρησιμοποιηθεί τόσο για διάβασμα του περιεχομένου της σχετικής διεύθυνσης όσο και για γράψιμο αυτού. Δείτε το παρακάτω τμήμα κώδικα, | Όταν μία συνάρτηση επιστρέφει μία αναφορά τότε η επιστρεφόμενη τιμής της μπορεί να χρησιμοποιηθεί τόσο για διάβασμα του περιεχομένου της σχετικής διεύθυνσης όσο και για γράψιμο αυτού. Δείτε το παρακάτω τμήμα κώδικα, | ||
| - | < | + | < |
| #include < | #include < | ||
| using namespace std; | using namespace std; | ||
| - | double | + | double& value(double array[], int i ) { |
| - | + | | |
| - | double& value( | + | |
| - | | + | |
| } | } | ||
| - | // main function to call above defined function. | ||
| int main () { | int main () { | ||
| + | | ||
| + | double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0}; | ||
| cout << "Value before change" | cout << "Value before change" | ||
| Line 94: | Line 93: | ||
| } | } | ||
| - | | + | |
| - | | + | |
| cout << "Value after change" | cout << "Value after change" | ||