Darsliklar C++ Funksiya parametrlari

C++ C++ Funksiya parametrlari

Funksiya parametrlari — funksiyaga tashqaridan ma’lumot uzatish vositasi. Parametrsiz funksiya doim bir xil ish qiladi; parametr bilan esa u har xil kirish uchun har xil natija beradi. C++’da parametr uzatishning bir necha usuli bor va ular orasidagi farq tilning eng muhim tushunchalaridan biridir.

Parametrfunksiya e’lonida ko’rsatilgan, chaqiruvda beriladigan qiymatni qabul qiladigan o’zgaruvchi. Chaqiruvda beriladigan haqiqiy qiymat argument deb ataladi.

Qiymat bo’yicha uzatish (pass by value)

Standart holatda parametr nusxa sifatida uzatiladi. Ya’ni funksiya ichida qiymat o’zgarsa, tashqaridagi asl o’zgaruvchi o’zgarmaydi:

#include <iostream>
using namespace std;

void oshir(int son) {
    son = son + 10;   // faqat nusxa o'zgaradi
}

int main() {
    int a = 5;
    oshir(a);
    cout << a << endl;   // a o'zgarmaydi
    return 0;
}
5

a o’zgarmadi, chunki funksiyaga uning nusxasi uzatildi. Bu xavfsiz, ammo katta ma’lumotlarda nusxalash resurs talab qiladi.

Manzil bo’yicha uzatish (pass by reference)

Agar funksiya asl o’zgaruvchini o’zgartirishi kerak bo’lsa, parametrni & (reference) bilan uzatamiz:

#include <iostream>
using namespace std;

void oshir(int& son) {
    son = son + 10;   // asl o'zgaruvchini o'zgartiradi
}

int main() {
    int a = 5;
    oshir(a);
    cout << a << endl;   // endi a o'zgardi
    return 0;
}
15

Bitta & belgisi hamma narsani o’zgartirdi: endi sona ning o’zi (nusxasi emas), shuning uchun o’zgarish tashqarida ham saqlanib qoldi. Bu, ayniqsa, funksiya bir necha qiymatni “qaytarishi” kerak bo’lganda foydali.

Uzatish usullari

Ikki asosiy usulni jadvalda solishtiramiz:

Usul Yozilishi Asl qiymatga ta’sir Qachon
Qiymat bo’yicha int son ta’sir qilmaydi kichik, himoyalangan ma’lumot
Manzil bo’yicha int& son o’zgartiradi asl o’zgarishi kerak / katta ma’lumot

Standart (default) parametr

Parametrga oldindan qiymat berish mumkin. Agar chaqiruvda u berilmasa, standart qiymat ishlatiladi:

#include <iostream>
using namespace std;

void salomlash(string ism = "mehmon") {
    cout << "Salom, " << ism << "!" << endl;
}

int main() {
    salomlash();
    salomlash("Farrux");
    return 0;
}
Salom, mehmon!
Salom, Farrux!

Birinchi chaqiruvda argument berilmagani uchun standart "mehmon" ishlatildi. Standart parametrlar funksiyani moslashuvchan qiladi.

Xulosa

Bu bo’limda funksiyaga qiymat bo’yicha va manzil bo’yicha (&) parametr uzatishni, ularning asl o’zgaruvchiga ta’siridagi farqni va standart parametrlarni ko’rib chiqdik. Reference bilan uzatish — C++’ning kuchli va tez vositasi. Keyingi darsda obyektga yo’naltirilgan dasturlash (OOP) ga kirib boramiz.