Mustaqil ishi 3 Mavzu-1: Tarmoqlanuvchi algoritmlar va dasturlar


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

Sinf-nomi.ob’ekt-nomi
Dasturda ob’ekt komponentasiga quyidagicha murojat kilish mumkin:
Sinf-nomi.ob’ekt-nomi :: komponenta-nomi yoki soddarok holda
Ob’ekt-nomi. Element-nomi

Misol uchun:


x.real=1.24;
x.imag=0.0;
dim[3]. Real=0.25;
dim[3]. Imag=0.0;
Sinfga tegishli funksiyalarga quyidagicha murojat qilinadi:
ob’ekt-nomi. funksiya-nomi
Misol uchun:
X. define(0.9) (Bu holda real=0.9 va imag=0.0)
X. define(4.3,20.0) (Bu holda kompleks son 4.3+i*20.0)
Display funksiyasi ekranda kompleks son qiymatlarini tasvirlaydi.
Komponenta o‘zgaruvchilar va komponenta funksiyalar.Sinf kompanenta o‘zgaruvchilari sifatida o‘zgaruvchilar , massivlar, ko‘rsatkichlar ishlatilishi mumkin. Elementlar ta’riflanganda initsializatsiya kilish mumkin emas. Buning sababi shuki sinf uchun xotiradan joy ajratilmaydi. Kompanenta elementlariga kompanenta funksiyalar orkali murojat qilinganda faqat nomlari ishlatiladi Sinfdan tashqarida sinf elementlariga emas ob’ekt elementlariga murojat kilish mumkin . Bu murojat ikki xil bo‘lishi mumkindir.
Ob’ekt- nomi . Element - nomi.
Sinf elementlari sinfga tegishli funksiyalarida ishlatilishidan oldin ta’riflangan bo‘lishi shart emas. Xuddi shunday bir funksiyadan xali ta’rifi berilmagan ikkinchi funksiyaga murojaat kilish mumkin.
Komponentalarga murojaat xukuklari. Komponentalarga murojaat xuquqi murojaat spetsifikatorlari yordamida boshkariladi. Bu spetsifikatorlar:
Protected – ximoyalangan;
Private – xususiy;
Public – umumiy;
Ximoyalangan kompanentalardan sinflar ierarxiyasi qurilganda foydalaniladi. Oddiy holda Protected spetsifikatori Private spetsifikatoriga ekvivalentdir. Umumiy ya’ni Public tipidagi komponentalarga dasturning ixtiyoriy joyida murojaat kilinishi mumkin.
Xususiy ya’ni Private tipidagi komponentalarga sinf tashqarisidan murojaat qilish mumkin emas. Agar sinflar Struct xizmatchi so‘zi bilan kiritilgan bo‘lsa, uning hamma komponentalari umumiy Public bo‘ladi, lekin bu xuquqni murojaat spetsifikatorlari yordamida o‘zgartirish mumkin.
Agar sinf Class xizmatchi so‘zi orkali ta’riflangan bo‘lsa, uning hamma komponentalari xususiy bo‘ladi. Lekin bu xuquqni murojaat spetsifikatorlari yordamida o‘zgartirish mumkindir.
Bu spetsifikator yordamida sinflar umumiy holda quyidagicha ta’riflanadi:

class class_name


{
int data_member; // Ma’lumot-element
void show_member(int); // Funksiya-element
};
Sinf ta’riflangandan so‘ng, shu sinf tipidagi o‘zgaruvchilarni(ob’ektlarni) quyidagicha ta’riflash mumkin:
class_name object_one, object_two, object_three;
Quyidagi misolda employee, sinfi kiritilgandir:
class employee
{
public:
long employee_id;
float salary;
void show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
};
Bu sinf ikki o‘zgaruvchi va bitta funksiya-elementga ega.
Quyidagi dastur ikki employee ob’ektini yaratadi. Nuqta operatordan foydalanib ma’lumot elementlarga qiymat beriladi so‘ngra show_employee elementidan foydalanib xizmatchi xakidagi ma’lumot ekranga chikariladi:
#include
using namespace std;
class employee
{
public:
long employee_id;
float salary;
void show_employee(void)
{
cout<<"Nomer: "<cout<<"Maosh: "<};
};
int main()
{
employee worker, boss;
worker.employee_id = 12345;
worker.salary = 25000;
boss.employee_id = 101;
boss.salary = 101101.00;
cout<<"\n"<<"ishchi"<worker.show_employee();
cout<<"\n"<<"boss"<boss.show_employee();
return 0;
}
Komponenta funksiya ta’rifi. Komponenta funksiya albatta sinf tanasida ta’riflangan bo‘lishi lozim. Global funksiyalardan farqli komponenta funksiya sinfning hamma komponentalariga murojat qilishi mumkin. Funksiyaning faqat prototipi emas to‘la ta’rifi sinf tanasida joylashgan bo‘lsa, bu funksiya joylashtiruvchi (inline) funksiya hisoblanadi. Ma’lumki inline funksiyalardassikllar, kalit bo‘yicha o‘tish operatori ishlatilishi mumkin emas. Bundan tashqari bunday funksiyalar rekursiv funksiya bo‘lolmaydi. Bu chegaralarni engish uchun sinf tanasiga faqat funksiya prototipi joylashtirilib, funksiyaning to‘la ta’rifi sinf tashqarisida dasturga kiruvchi boshqa funksiyalar bilan birga beriladi. Komponenta funksiyani sinf tashqarisida ta’riflanganda, qaysi sinfga tegishli ekanligini quyidagi shaklda ko‘rsatiladi:
Sinf-nomi :: Komponenta funksiya-nomi
Sinf tanasiga komponenta funksiya prototipi quyidagi shaklda joylashtiriladi:
Tip funksiya-nomi(formal-parametrlar-ta’rifi)
Sinf tashqarisida funksiya quyidagi shaklda ta’riflanadi:
Tip sinf-nomi :: funksiya-nomi(formal-parametrlar-spetsifikatsiyasi)
{ funksiya tanasi };
Oldingi misoldagi employee sinfida funksiya sinf ichida ta’riflangan. Bunday funksiya joylanuvchi (inline) funksiya deb qaraladi.


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