C++ standart parametrlar
C++ dasturlashda biz function parametrlari uchun standart qiymatlarni berishimiz mumkin.
Agar standart argumentlari bo'lgan funksiya argumentlarni o'tkazmasdan chaqirilsa, u holda standart parametrlardan foydalaniladi.
Biroq, agar funksiya chaqirilayotganda argumentlar uzatilsa, standart argumentlar e'tiborga olinmaydi.
How default arguments work in C++

Yuqoridagi rasmdan standart argumentlarning ishlashini tushunishimiz mumkin:
temp() chaqirilganda, funksiya tomonidan ikkala standart parametr ham ishlatiladi.temp(6) chaqirilganda, birinchi argument 6 ga aylanadi, ikkinchi parametr uchun standart qiymat ishlatiladi.temp(6, -2.3) chaqirilganda, ikkala standart parametr bekor qilinadi, natijada i = 6 va f = -2.3 .temp(3.4) uzatilganda, funksiya nomaqbul tarzda harakat qiladi, chunki ikkinchi argumentni birinchi argumentni o'tkazmasdan o'tkazib bo'lmaydi. Shuning uchun 3.4 birinchi argument sifatida uzatiladi. Birinchi argument int sifatida aniqlanganligi sababli, aslida o'tkaziladigan qiymat 3 hisoblanadi.#include <iostream>
using namespace std;
// standart argumentlarni aniqlash
void display(char = '*', int = 3);
int main() {
int count = 5;
cout << "No argument passed: ";
// *, 3 parametr bo'ladi
display();
cout << "First argument passed: ";
// #, 3 parametrlar bo'ladi
display('#');
cout << "Both arguments passed: ";
// $, 5 parametr bo'ladi
display('
Chiqish
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Bu dastur qanday ishlaydi:
1.`display()` hech qanday argumentlarsiz chaqiriladi. Bunday holda, `display()` standart `c = '*'` va `n = 1` parametrlaridan foydalanadi.
2.`display('#')` faqat bitta argument bilan chaqiriladi. Bunday holda, birinchisi `'#'` ga aylanadi. Ikkinchi standart parametr `n = 1` saqlanib qolgan.
3.`display('#', count)` ikkala argument bilan ham chaqiriladi. Bunday holda, standart argumentlar ishlatilmaydi.
Funksiya ta'rifining o'zida standart parametrlarni ham belgilashimiz mumkin. Quyidagi dastur yuqoridagiga teng.
```cpp
#include <iostream>
using namespace std;
// standart argumentlarni aniqlash
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 parametr bo'ladi
display();
cout << "First argument passed: ";
// #, 3 parametrlar bo'ladi
display('#');
cout << "Both argument passed: ";
// $, 5 parametr bo'ladi
display('$', count);
return 0;
}
1.Parametr uchun standart qiymatni berganimizdan so'ng, barcha keyingi parametrlar ham standart qiymatlarga ega bo'lishi kerak. Masalan, // Yaroqsiz bekor qo'shish(int a, int b = 3, int c, int d); // noto'g'ri bekor qo'shish(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
2.Agar funksiya prototipi o'rniga funksiya ta'rifida standart argumentlarni aniqlayotgan bo'lsak, u holda funksiya funksiya chaqiruvidan oldin aniqlanishi kerak. // Kod noto'g'ri int main() { // funksiya chaqiruvini ko'rsatish(); } bekor displey (char c = '*', int count = 5) { // kod }
Shuningdek o'qing:
C++ User-defined Function Types , count);
return 0; }
void display(char c, int count) { for(int i = 1; i <= count; ++i) { cout << c; } cout << endl; }
Chiqish
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Bu dastur qanday ishlaydi:
1.`display()` hech qanday argumentlarsiz chaqiriladi. Bunday holda, `display()` standart `c = '*'` va `n = 1` parametrlaridan foydalanadi.
2.`display('#')` faqat bitta argument bilan chaqiriladi. Bunday holda, birinchisi `'#'` ga aylanadi. Ikkinchi standart parametr `n = 1` saqlanib qolgan.
3.`display('#', count)` ikkala argument bilan ham chaqiriladi. Bunday holda, standart argumentlar ishlatilmaydi.
Funksiya ta'rifining o'zida standart parametrlarni ham belgilashimiz mumkin. Quyidagi dastur yuqoridagiga teng.
```cpp
#include <iostream>
using namespace std;
// standart argumentlarni aniqlash
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 parametr bo'ladi
display();
cout << "First argument passed: ";
// #, 3 parametrlar bo'ladi
display('#');
cout << "Both argument passed: ";
// $, 5 parametr bo'ladi
display('$', count);
return 0;
}
1.Parametr uchun standart qiymatni berganimizdan so'ng, barcha keyingi parametrlar ham standart qiymatlarga ega bo'lishi kerak. Masalan, // Yaroqsiz bekor qo'shish(int a, int b = 3, int c, int d); // noto'g'ri bekor qo'shish(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
2.Agar funksiya prototipi o'rniga funksiya ta'rifida standart argumentlarni aniqlayotgan bo'lsak, u holda funksiya funksiya chaqiruvidan oldin aniqlanishi kerak. // Kod noto'g'ri int main() { // funksiya chaqiruvini ko'rsatish(); } bekor displey (char c = '*', int count = 5) { // kod }
Shuningdek o'qing: