Προεπιλεγμένα επιχειρήματα προγραμματισμού C ++ (παράμετροι)

Σε αυτό το σεμινάριο, θα μάθουμε τα προεπιλεγμένα επιχειρήματα C ++ και τη λειτουργία τους με τη βοήθεια παραδειγμάτων.

Στον προγραμματισμό C ++, μπορούμε να παρέχουμε προεπιλεγμένες τιμές για παραμέτρους λειτουργίας.

Εάν καλείται μια συνάρτηση με προεπιλεγμένα ορίσματα χωρίς να περάσει ορίσματα, τότε χρησιμοποιούνται οι προεπιλεγμένες παράμετροι.

Ωστόσο, εάν περάσουν ορίσματα κατά την κλήση της συνάρτησης, τα προεπιλεγμένα ορίσματα αγνοούνται.

Εργασία προεπιλεγμένων ορισμάτων

Πώς λειτουργούν τα προεπιλεγμένα ορίσματα στο C ++

Μπορούμε να κατανοήσουμε τη λειτουργία των προεπιλεγμένων ορισμάτων από την παραπάνω εικόνα:

  1. Όταν temp()καλείται, χρησιμοποιούνται και οι δύο προεπιλεγμένες παράμετροι από τη συνάρτηση.
  2. Όταν temp(6)καλείται, το πρώτο όρισμα γίνεται 6ενώ η προεπιλεγμένη τιμή χρησιμοποιείται για τη δεύτερη παράμετρο.
  3. Όταν temp(6, -2.3)καλείται, και οι δύο προεπιλεγμένες παράμετροι παρακάμπτονται, με αποτέλεσμα i = 6και f = -2.3.
  4. Όταν temp(3.4)περάσει, η συνάρτηση συμπεριφέρεται με ανεπιθύμητο τρόπο επειδή το δεύτερο όρισμα δεν μπορεί να περάσει χωρίς να περάσει το πρώτο όρισμα.
    Ως εκ τούτου, 3.4θεωρείται ως το πρώτο επιχείρημα. Δεδομένου ότι το πρώτο όρισμα έχει οριστεί ως int, η τιμή που μεταδίδεται στην πραγματικότητα είναι 3.

Παράδειγμα: Προεπιλεγμένο επιχείρημα

 #include using namespace std; // defining the default arguments void display(char = '*', int = 3); int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both arguments passed: "; // $, 5 will be parameters display('$', count); return 0; ) void display(char c, int count) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; )

Παραγωγή

 Δεν πέρασε κανένα επιχείρημα: *** Το πρώτο επιχείρημα πέρασε: ### Και τα δύο επιχειρήματα πέρασαν: $$$$$

Δείτε πώς λειτουργεί αυτό το πρόγραμμα:

  1. display()καλείται χωρίς να περάσει κανένα επιχείρημα. Σε αυτήν την περίπτωση, display()χρησιμοποιεί τις προεπιλεγμένες παραμέτρους c = '*'και n = 1.
  2. display('#')καλείται με ένα μόνο όρισμα. Σε αυτήν την περίπτωση, το πρώτο γίνεται '#'. Η δεύτερη προεπιλεγμένη παράμετρος n = 1διατηρείται.
  3. display('#', count)καλείται και με τα δύο επιχειρήματα. Σε αυτήν την περίπτωση, δεν χρησιμοποιούνται προεπιλεγμένα ορίσματα.

Μπορούμε επίσης να ορίσουμε τις προεπιλεγμένες παραμέτρους στον ίδιο τον ορισμό συνάρτησης. Το παρακάτω πρόγραμμα είναι ισοδύναμο με το παραπάνω.

 #include using namespace std; // defining the default arguments void display(char c = '*', int count = 3) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; ) int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both argument passed: "; // $, 5 will be parameters display('$', count); return 0; )

Πράγματα που πρέπει να θυμάστε

  1. Μόλις παρέχουμε μια προεπιλεγμένη τιμή για μια παράμετρο, όλες οι επόμενες παράμετροι πρέπει επίσης να έχουν προεπιλεγμένες τιμές. Για παράδειγμα,
     // Invalid void add(int a, int b = 3, int c, int d); // Invalid void add(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
  2. Εάν ορίζουμε τα προεπιλεγμένα ορίσματα στον ορισμό της συνάρτησης αντί για το πρωτότυπο της συνάρτησης, τότε η συνάρτηση πρέπει να οριστεί πριν από την κλήση της συνάρτησης.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

ενδιαφέροντα άρθρα...