Skip to content

Dost funksiyalar (Friend Functions)

C++ Dost funksiyalari

Odatda, sinfning private a'zolariga faqat getter va setter kabi public metodlar orqali kirish mumkin. Ammo ba'zi hollarda friend funksiya deb ataladigan maxsus funksiya yordamida ularga to'g'ridan-to'g'ri kirish mumkin.

friend funksiya sinfning a'zosi emas, lekin sinfning private ma'lumotlariga kirish huquqiga ega:

MISOL

cpp
class Employee {
  private:
    int salary;

  public:
    Employee(int s) {
      salary = s;
    }

    // Dost funksiyani e'lon qilish
    friend void displaySalary(Employee emp);
};

void displaySalary(Employee emp) {
  cout << "Maosh: " << emp.salary;
}

int main() {
  Employee myEmp(50000);
  displaySalary(myEmp);
  return 0;
}

Tushuntirish

  • friend funksiya displaySalary() Employee sinfi ichida e'lon qilingan, lekin sinfdan tashqarida aniqlangan.
  • displaySalary() sinfning a'zosi bo'lmasa ham, u private a'zo salary ga kirish huquqiga ega.
  • main() funksiyasida Employee obyektini yaratamiz va dost funksiyani chaqirib uning maoshini chiqaramiz.