Darsliklar C++ OOP

C++ C++ OOP

Obyektga yo’naltirilgan dasturlash (OOP) — dasturlashda tub burilish nuqtasi. Shu paytgacha biz alohida o’zgaruvchilar va funksiyalar bilan ishladik. OOP esa ma’lumot va u ustidagi amallarni bitta yaxlit birlikka — obyektga jamlaydi. Deyarli barcha yirik C++ loyihalari aynan shu yondashuvga asoslanadi.

OOPdasturni real dunyodagi obyektlar ko’rinishida modellashtiradigan paradigma. Uning to’rt ustuni bor: enkapsulatsiya, meros, polimorfizm va abstraksiya.

OOP nima uchun kerak?

Tasavvur qiling, avtomobilni dasturda ifodalash kerak. Protsedurali yondashuvda uning rangi, tezligi alohida o’zgaruvchilarda, harakati esa alohida funksiyalarda bo’lardi — hammasi sochilib ketadi. OOP esa bularni bitta Avtomobil birligiga jamlaydi: ma’lumot (rang, tezlik) va xatti-harakat (yurish, to’xtash) bir joyda.

To’rt ustun

OOP ni ushlab turadigan to’rt tamoyilni jadvalda ko’rib chiqamiz:

Ustun Ma’nosi
Enkapsulatsiya ma’lumot va metodni birlashtirib, ichkisini yashirish
Meros bir sinf boshqasidan xususiyat oladi
Polimorfizm bir nom turli obyektda turlicha ishlaydi
Abstraksiya murakkablikni yashirib, faqat kerakni ko’rsatish

Bularning har birini keyingi darslarda alohida chuqur o’rganamiz.

Sinf va obyekt tushunchasi

OOP ning markazida ikki tushuncha turadi: sinf — bu andoza (chizma), obyekt — shu andoza asosida yaratilgan aniq nusxa. Keling, birinchi sinfimizni ko’ramiz:

#include <iostream>
#include <string>
using namespace std;

class Foydalanuvchi {
public:
    string ism;
    int yosh;
};

int main() {
    Foydalanuvchi u;        // obyekt yaratdik
    u.ism = "Master Sherkulov";
    u.yosh = 30;

    cout << u.ism << ", " << u.yosh << " yosh" << endl;
    return 0;
}
Master Sherkulov, 30 yosh

class Foydalanuvchi — andozani belgiladi, Foydalanuvchi u — shu andozadan aniq obyekt yaratdi. Obyekt ichidagi ma’lumotga (ism, yosh) nuqta (.) orqali murojaat qilinadi.

Bir sinf — ko’p obyekt

Sinfning kuchi shundaki, bitta andozadan istagancha mustaqil obyekt yaratsa bo’ladi:

#include <iostream>
#include <string>
using namespace std;

class Foydalanuvchi {
public:
    string ism;
};

int main() {
    Foydalanuvchi a, b;
    a.ism = "Farrux";
    b.ism = "Master Sherkulov";
    cout << a.ism << endl;
    cout << b.ism << endl;
    return 0;
}
Farrux
Master Sherkulov

a va b — bir sinfdan yaratilgan, ammo butunlay mustaqil ikki obyekt. Biri o’zgarsa, ikkinchisiga ta’sir qilmaydi.

Xulosa

Bu bo’limda OOP falsafasini, uning to’rt ustunini, sinf (andoza) va obyekt (nusxa) tushunchasini hamda bir sinfdan ko’p obyekt yaratishni ko’rib chiqdik. OOP — bu murakkab dasturni boshqarish san’ati. Keyingi darsda sinflar va obyektlar bilan yanada chuqurroq ishlaymiz.