C++ konstruktorlar
Konstruktorlar
Konstruktor — sinf obyekti yaratilganda avtomatik ravishda chaqiriladigan maxsus metod.
Konstruktor yaratish uchun sinf nomi bilan bir xil nomni yozing va undan keyin qavslar () qo‘ying:
Misol
class MyClass { // The class
public: // Access specifier
MyClass() { // Constructor
cout << "Hello World!";
}
};
int main() {
MyClass myObj; // Create an object of MyClass (this will call the constructor)
return 0;
}
O‘zingiz sinab ko‘ring »
Konstruktor qoidalari
- Konstruktor sinf nomi bilan bir xil nomga ega.
- U qaytariladigan tipga ega emas (hatto
voidham emas). - U odatda public qilib e’lon qilinadi.
- U obyekt yaratilganda avtomatik ravishda chaqiriladi.
Parametrli konstruktor
Konstruktorlar ham (xuddi oddiy funksiyalar kabi) parametrlar qabul qila oladi, bu atributlarga boshlang‘ich qiymatlar berishda foydali bo‘lishi mumkin.
Quyidagi sinfda brand, model va year atributlari hamda turli parametrlarga ega konstruktor bor. Konstruktor ichida atributlarga konstruktor parametrlarining qiymatlarini beramiz (brand=x va h.k.).
Konstruktorni chaqirganimizda (sinf obyektini yaratish orqali) unga parametrlar uzatamiz va ular mos atributlarga xuddi shu qiymatlarni beradi:
Misol
class Car { // The class
public: // Access specifier
string brand; // Attribute
string model; // Attribute
int year; // Attribute
Car(string x, string y, int z) { // Constructor with parameters
brand = x;
model = y;
year = z;
}
};
int main() {
// Create Car objects and call the constructor with different values
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Print values
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
O‘zingiz sinab ko‘ring »
Sinfdan tashqarida aniqlangan konstruktor
Konstruktorni ko‘rinish sohasini aniqlash operatori :: yordamida sinfdan tashqarida ham aniqlashingiz mumkin.
Misol
class Car { // The class
public: // Access specifier
string brand; // Attribute
string model; // Attribute
int year; // Attribute
Car(string x, string y, int z); // Constructor declaration
};
// Constructor definition outside the class
Car::Car(string x, string y, int z) {
brand = x;
model = y;
year = z;
}
int main() {
// Create Car objects and call the constructor with different values
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Print values
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
O‘zingiz sinab ko‘ring »
Konstruktorlar nima uchun foydali
Obyekt yaratganingizda konstruktorlar o‘z-o‘zidan ishga tushadi. Ular hamma narsa darhol tayyor bo‘lishi uchun kerakli sozlashlarni bajaradi.
Buni shunday tasavvur qiling: Pitsa (obyekt) buyurtma qilganingizda, konstruktor — pitsa sizga yetib kelishidan oldin unga sous, pishloq va boshqa masalliqlarni qo‘shadigan oshpaz. Buni o‘zingiz qilishingiz shart emas!
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
