Βίντεο: How to green the world's deserts and reverse climate change | Allan Savory 2024
Δεδομένου ότι η C ++ περνάει την τιμή του επιχειρήματος, δεν μπορείτε να διαφοροποιήσετε με const-ness. Στη συνέχεια, αυτό που μεταφέρεται στην μέγιστη τιμή () είναι οι τιμές 2. 0 και 0. 0. Η συνάρτηση maximum () δεν μπορεί να δείξει εάν αυτές οι τιμές προέρχονται από μια μεταβλητή όπως dArg ή μια σταθερά όπως το 0. 0. < μέγιστο διπλό (διπλό d1, διπλό d2). void otherFunction () {διπλό dArg = 2. 0; διπλό dNonNegative = μέγιστο (dArg, 0. 0).
Μπορείτε
μπορείτε να δηλώσετε τα επιχειρήματα μιας συνάρτησης να είναι const. Μια τέτοια δήλωση σημαίνει ότι δεν μπορείτε να αλλάξετε την τιμή του επιχειρήματος μέσα στη λειτουργία. Αυτό αποδεικνύεται στην ακόλουθη εφαρμογή του μέγιστου (διπλό, διπλό):
Η αντιστοίχιση των d1 και d2 δεν επιτρέπεται επειδή και οι δύο έχουν δηλωθεί ως const και κατά συνέπεια δεν είναι μεταβλητές.
Αυτό που δεν είναι νόμιμο είναι το ακόλουθο:
// αυτές οι δύο λειτουργίες δεν διαφέρουν αρκετά ώστε να διακρίνεται το διπλό μέγιστο (διπλό d1, διπλό d2). διπλό μέγιστο (const διπλό d1, const διπλό d2)? void otherFunction () {διπλό dArg = 2. 0; // C ++ δεν γνωρίζει ποια από τις παραπάνω λειτουργίες καλείται double dNonNegative = maximum (dArg, 0. 0).
Εδώ η C ++ δεν έχει κανέναν τρόπο διαφοροποίησης μεταξύ των δύο όταν κάνετε την κλήση.