Skip to content

Konstruktorlar (Constructors)

Konstruktorlar

Konstruktor — bu sinf obyekti yaratilganda avtomatik ravishda chaqiriladigan maxsus metoddir.

Konstruktor yaratish uchun sinf bilan bir xil nomdan foydalaning va qavslar () qo'shing:

MISOL

cpp
class MyClass {     // Sinf
  public:           // Kirish spetsifikatori
    MyClass() {     // Konstruktor
      cout << "Salom Dunyo!";
    }
};

int main() {
  MyClass myObj;    // MyClass obyektini yaratish (konstruktor chaqiriladi)
  return 0;
}

KONSTRUKTOR QOIDALARI

  • Konstruktor sinf bilan bir xil nomga ega
  • Uning qaytish turi yo'q (void ham emas)
  • Odatda public deb e'lon qilinadi
  • Obyekt yaratilganda avtomatik chaqiriladi

Parametrli konstruktor

Konstruktorlar ham oddiy funksiyalar kabi parametrlar qabul qilishi mumkin. Bu atributlarga boshlang'ich qiymat berish uchun foydali.

MISOL

cpp
class Car {          // Sinf
  public:            // Kirish spetsifikatori
    string brand;    // Atribut
    string model;    // Atribut
    int year;        // Atribut
    Car(string x, string y, int z) { // Parametrli konstruktor
      brand = x;
      model = y;
      year = z;
    }
};

int main() {
  // Car obyektlarini yaratish va konstruktorni turli qiymatlar bilan chaqirish
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Qiymatlarni chiqarish
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

Sinf tashqarisida aniqlangan konstruktor

Konstruktorni sinf tashqarisida :: soha ajratish operatori yordamida ham aniqlash mumkin:

MISOL

cpp
class Car {          // Sinf
  public:            // Kirish spetsifikatori
    string brand;    // Atribut
    string model;    // Atribut
    int year;        // Atribut
    Car(string x, string y, int z); // Konstruktor e'loni
};

// Sinf tashqarisida konstruktor aniqlash
Car::Car(string x, string y, int z) {
  brand = x;
  model = y;
  year = z;
}

int main() {
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

Konstruktorlar nima uchun foydali?

Konstruktorlar obyekt yaratilganda o'z-o'zidan ishlaydi. Ular hamma narsani darhol sozlab beradi.

O'YLANG

Pitsa buyurganingizni tasavvur qiling (obyekt) — konstruktor bu pizzachi bo'lib, sous, pishloq va qo'shimchalarni sizga yetkazishdan oldin tayyorlab qo'yadi — siz buni o'zingiz qilishingiz shart emas!