Hujah Lalai Pengaturcaraan C ++ (Parameter)

Dalam tutorial ini, kita akan mempelajari argumen lalai C ++ dan cara kerjanya dengan bantuan contoh.

Dalam pengaturcaraan C ++, kami dapat memberikan nilai lalai untuk parameter fungsi.

Sekiranya fungsi dengan argumen lalai dipanggil tanpa melewati argumen, maka parameter lalai digunakan.

Walau bagaimanapun, jika argumen dilewatkan semasa memanggil fungsi, argumen lalai akan diabaikan.

Mengendalikan hujah lalai

Bagaimana argumen lalai berfungsi di C ++

Kita dapat memahami cara kerja argumen lalai dari gambar di atas:

  1. Apabila temp()dipanggil, kedua-dua parameter lalai digunakan oleh fungsi.
  2. Apabila temp(6)dipanggil, argumen pertama menjadi 6sementara nilai lalai digunakan untuk parameter kedua.
  3. Apabila temp(6, -2.3)dipanggil, kedua-dua parameter lalai diganti, menghasilkan i = 6dan f = -2.3.
  4. Apabila temp(3.4)dilalui, fungsi tersebut berperilaku dengan cara yang tidak diingini kerana argumen kedua tidak dapat dilalui tanpa melewati argumen pertama.
    Oleh itu, 3.4disahkan sebagai hujah pertama. Oleh kerana argumen pertama telah didefinisikan sebagai int, nilai yang sebenarnya diluluskan adalah 3.

Contoh: Hujah Lalai

 #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; )

Pengeluaran

 Tidak ada argumen yang disahkan: *** Argumen pertama disahkan: ### Kedua-dua argumen diluluskan: $$$$$

Inilah cara program ini berfungsi:

  1. display()dipanggil tanpa menyampaikan hujah. Dalam kes ini, display()menggunakan kedua-dua parameter lalai c = '*'dan n = 1.
  2. display('#')dipanggil dengan satu hujah sahaja. Dalam kes ini, yang pertama menjadi '#'. Parameter lalai kedua n = 1dikekalkan.
  3. display('#', count)disebut dengan kedua-dua dalil. Dalam kes ini, argumen lalai tidak digunakan.

Kita juga dapat menentukan parameter lalai dalam definisi fungsi itu sendiri. Program di bawah ini setaraf dengan program di atas.

 #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; )

Perkara yang Perlu Diingat

  1. Setelah kami memberikan nilai lalai untuk parameter, semua parameter berikutnya juga harus memiliki nilai lalai. Sebagai contoh,
     // 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. Sekiranya kita mendefinisikan argumen lalai dalam definisi fungsi dan bukannya prototaip fungsi, maka fungsi tersebut harus ditentukan sebelum fungsi memanggil.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Artikel menarik...