Mustaqil ishi 3 Mavzu-1: Tarmoqlanuvchi algoritmlar va dasturlar


Mavzu-4: . O’zaro boglangan sinflarni tashkil etish


Download 25.47 Kb.
bet4/5
Sana24.12.2022
Hajmi25.47 Kb.
#1055425
1   2   3   4   5
Bog'liq
Musrtaqil ishi 3

Mavzu-4: . O’zaro boglangan sinflarni tashkil etish

C ++ - bu ob'ektga yo'naltirilgan dasturlash tili. C++ dasturlash tilida hamma narsa uning xususiyatlari va usullari bilan bir qatorda sinfllar va obyektlar bilan bog'liq.

Sinf - bu bizning dasturimizda foydalanishimiz mumkin bo'lgan foydalanuvchi belgilaydigan ma'lumot turi va u ob'ekt tuzuvchisi yoki ob'ektlarni yaratish uchun "reja" sifatida ishlaydi.
Sinf yaratish uchun class kalit so'zdan foydalaning. " MyClass" Nomli sinf yaratamiz.
class MyClass { // class
public: // ochiqlik siyosati
int myNum; // Attribute (int tipiga tegishli)
string myString; // Attribute (string tipiga tegishli)
};
Misolni tushuntirish.
class Kalit so'z MyClass deb atalgan bir sinf yaratish uchun ishlatiladi .
publicKalit so'z bir bo'lib kirish belgisi ifodalaydi. Bu degani class dan tashqarida ham attributlardan foydalanish mumkin .
Sinf ichida butun son myNum va satr o'zgaruvchisi mavjud myString. O'zgaruvchilar sinf ichida e'lon qilinganida, ular atributlar deb nomlanadi .

Sinf a’zolariga ko’rsatkich

C++ da shunday ko’rsatkich qilsa bo’ladiku bu ko’rsatkich class a’zosini ko’rsatib turadi. Bunday ko’rsatkichlarni pointer-to-member deb ataladi. Class a’zosiga ko’rsatkichda maxsus .* va ->* operatorlar ishlatiladi.

E’lon qilinishi:

int c1::*data; //toifaga ko’rsatkich

int (c1::*func)(); //funksiyaga ko’rsatkich

data = &c1::val; //val joyini data’ga olish

func = &c1::get_num; //get_num joyini func’ga olish

ob.*data; // val ga murojat

(ob.*func)(); // get_num() ga murojat

Demak yuqoridagi misoldan ko’rinib turibdiki, obyekt ko’rsatkichi orqali sinf a’zolariga murojaat qilish imkoniyati mavjud. Bunda sinf a’zosiga mos ko’rsatkich o’zgaruvchi e’lon qilinadi va ushbu o’zgaruvchi orqali sinf a’zosiga murojaat qilinadi.

class c1 {

public: int get_num() { return val + val; }

c1(int a){ val = a; }

int val;

};

int c1::*data; // c1 class a’zolariga ko’rsatkich yaratildi



int (c1::*func)(); // c1 class a’zolariga ko’rsatkich yaratildi

c1 a(4), b(8); // a va b obyektlar yaratildi

data = &c1::val; // data va func ko’rsatkichlariga c1 a’zolarining joylari olindi

func = &c1::get_num; // data va func ko’rsatkichlariga c1 a’zolarining joylari

olindi

cout<

qilinmoqda

cout<<(a.*func)();<<(b.*func)(); // Obyekt a’zolariga ko’rsatkichlar orqali murojat qilinmoqda



Download 25.47 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling