39 / 90

C++ Objects and Class

C++ sinflar va obyektlar

Ob'ektlar va sinflar C++ da tegishli functions va ma'lumotlarni bir joyga o'rash uchun ishlatiladi.

Aytaylik, to'rtburchaklar xonaning uzunligi, kengligi va balandligini saqlashimiz va uning maydoni va hajmini hisoblashimiz kerak.

Bu vazifani bajarish uchun calculate_area() va calculate_volume() funksiyalari bilan birga uchta variables , masalan, uzunlik, kenglik va balandlik yaratishimiz mumkin.

Biroq, C++ da alohida o'zgaruvchilar va funksiyalarni yaratish o'rniga, biz tegishli ma'lumotlar va funksiyalarni bitta joyga o'rashimiz mumkin (ob'ektlar yaratish orqali).

Ushbu dasturlash paradigmasi object-oriented programming sifatida tanilgan.

Lekin biz obyektlarni yaratish va ularni C++ da ishlatishdan oldin, avvalo, sinflar haqida bilib olishimiz kerak.

C++ sinfi

Sinf - bu ob'ekt uchun chizma.

Biz sinfni uyning eskizi (prototipi) deb tasavvur qilishimiz mumkin.

Unda pollar, eshiklar, derazalar va boshqalar haqida barcha ma'lumotlar mavjud - biz ushbu tavsiflar asosida uy quramiz.

Uy - bu ob'ekt.

Sinf yaratish

Sinf C++ tilida keyword class va undan keyin sinf nomi yordamida aniqlanadi.

Sinfning tanasi figurali qavslar ichida aniqlanadi va oxirida nuqta-vergul bilan tugaydi.

example.cpp
class ClassName {
   // ba'zi ma'lumotlar
   // ba'zi funksiyalar
};

Masalan,

example.cpp
class Room {
    public:
        double length;
        double breadth;
        double height;   

        double calculate_area(){   
            return length * breadth;
        }

        double calculate_volume(){   
            return length * breadth * height;
        }

};

Bu erda biz Room nomli sinfni aniqladik.

Sinf ichida e'lon qilingan uzunlik, kenglik va balandlik o'zgaruvchilari ma'lumotlar a'zolari sifatida tanilgan.

calculate_area() va calculate_volume () funksiyalari sinfning a'zo funksiyalari sifatida tanilgan.

C++ obyektlari

Sinf aniqlanganda faqat ob'ektning spetsifikatsiyasi aniqlanadi; xotira yoki xotira ajratilmagan.

Sinfda belgilangan ma'lumotlar va kirish funksiyalaridan foydalanish uchun biz ob'ektlarni yaratishimiz kerak.

C++ da obyektni aniqlash sintaksisi

example.cpp
ClassName object_name;

Biz Room sinfidagi ob'ektlarni (yuqoridagi misolda aniqlangan) quyidagicha yaratishimiz mumkin:

example.cpp
// namuna funksiyasi
void sample_function() {
    // ob'ektlarni yaratish
    Room room1, room2;
}

int main(){
    // ob'ektlarni yaratish
    Room room3, room4;
}

Bu yerda sample_function() da Room sinfining xona1 va xona2 ikkita ob'ekti yaratilgan.

Xuddi shunday, xona3 va xona4 ob'ektlari main() da yaratilgan.

Ko'rib turganimizdek, dasturning istalgan funksiyasida sinf ob'ektlarini yaratishimiz mumkin.

Bundan tashqari, sinfning o'zida yoki boshqa sinflarda sinf ob'ektlarini yaratishimiz mumkin.

Bundan tashqari, biz bitta sinfdan xohlaganimizcha ko'p ob'ektlar yaratishimiz mumkin.

C++ Access ma'lumotlar a'zolari va a'zo funksiyalari

Biz . (nuqta) operator yordamida sinfning ma'lumotlar a'zolari va a'zo funksiyalariga kirishimiz mumkin.

Masalan,

example.cpp
room2.calculate_area();

Bu xona 2 uchun Room sinfidagi calculate_area() funksiyasini chaqiradi.

Xuddi shunday, ma'lumotlar a'zolariga quyidagi tarzda kirish mumkin:

example.cpp
room1.length = 5.5;

Bunday holda, u xona1 uzunligi o'zgaruvchisini 5.5 ga ishga tushiradi.

Misol: C++ dasturlashda obyekt va sinf

example.cpp
// 
// C++ dasturlashda ob'ektlar va sinf

#include <iostream>
using namespace std;

// sinf yaratish
class Room {

   public:
    double length;
    double breadth;
    double height;

    double calculate_area() {
        return length * breadth;
    }

    double calculate_volume() {
        return length * breadth * height;
    }
};

int main() {

    // Xona sinfining ob'ektini yaratish
    Room room1;

    // 
    room1.length = 42.5;
    room1.breadth = 30.8;
    room1.height = 19.2;

    // xonaning maydoni va hajmini hisoblash va ko'rsatish
    cout << "Area of Room =  " << room1.calculate_area() << endl;
    cout << "Volume of Room =  " << room1.calculate_volume() << endl;

    return 0;
}

Chiqish

kod
Area of Room =  1309
Volume of Room =  25132.8

Ushbu dasturda biz xonaning maydoni va hajmini hisoblash uchun Room sinfi va uning ob'ekt xonasi1 dan foydalandik.

main() da biz uzunlik, kenglik va balandlik qiymatlarini kod bilan tayinladik:

example.cpp
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;

Keyin kerakli hisob-kitoblarni bajarish uchun calculate_area() va calculate_volume() funksiyalarini chaqirdik.

Dasturda public kalit so'zidan foydalanishga e'tibor bering. Bu shuni anglatadiki, a'zolar ommaviydir va ularga dasturning istalgan joyidan kirish mumkin.

public va boshqa kirish spetsifikatsiyalari haqida ko'proq ma'lumot olish uchun C++ Class Access Modifiers qo'llanmamizga tashrif buyuring.

Shuningdek oʻqing