1-ma’ruza C++ da Sinflar va obyektlar. Konstruktor va destruktor. Sinf usullari reja
Download 86.61 Kb.
|
Algoritmlashga kirish fanidan majmua
Sinfning konstansta ob’yektlari va konstanta funksiya-a’zolari
Sinfning funksiya-a’zolari parametrlar ro’yxatidan keyin keluvchi const modifikatori bilan e’lon qilinishi mumkin. Bunday funksiya sinf berilganlar- a’zolari qiymatlarini o’zgartira olmaydi va sinfning konstanta bo’lmagan funksiya– a’zolarini chaqirishi mumkin emas. Konstanta funksiya-a’zosi bo’lgan sinfga misol keltiramiz. classNuqta { int x,y; public: Nuqta(int _x, int _y); void Qiymat_Berish(int x0, int y0); //konstantafunksiya-a’zo void Qiymat_Olish(int xx, int yy) const; }; Nuqta::Nuqta(int _x, int _y) { x=_x; y=_y;} voidNuqta::Qiymat_Berish(int x0, int y0) { x=x0; y=y0;} voidNuqta::Qiymat_Olish(int &xx, int &yy)const { xx=x; yy=y; } Xuddi shunday, konstanta ob’yektlar yaratish mumkin. Buning uchun ob’yekt e’loni oldiga const modifikatori qo’yilishi kerak. const Nuqta koord(3,6); const kalit so’zi kompilyatorga ushbu ob’yektning holati o’zgarmasligi kerakligini bildiradi. Shu sababli ob’yekt berilgan-az’olari qiymatini o’zgartiradigan funksiya–a’zosini chaqirishi uchrasa, kompilyator xato haqida xabar beradi. Bu qoidaga konstanta funksiya-a’zolarni chaqirish rioya qilmaydi, chunki o’z mazmuniga ko’ra ular berilgan–a’zolarni qiymatini o’zgartira olmaydi. Yuqorida e’lon qilingan Nuqta sinfini konstanta ob’yekt ishlatishiga misol. // Nuqta sinf e’loni va aniqlanishi int main() { Nuqtanuqta1(3,7); Const Nuqta nuqta2(8,10); //Konstanta ob’yekt int a,b; nuqta1. Qiymat_Olish (a,b); nuqta2. Qiymat_Berish(2,3);// Xato nuqta2. Qiymat_Olish(a,b); // To’g’ri return 0; } Konstanta funksiya–a’zolarning berilganlar–a’zolar bilan ishlashda bog’liq cheklovlarni “aylanib o’tish” uchun mutable kalit so’zi aniqlangan. Bu kalit so’z sinfning qaysi berilgan-a’zosi konstanta funksiya-a’zolar tomonidan o’zgartirilishi mumkin ekanligini ko’rsatadi. Statik va konstanta berilganlar-a’zolariga mutable kalit so’zini ishlatish mumkin emas, u berilganlar turining modifikatori sifatida ishlatiladi. Misol. #include { mutable int count; mutable const int * intPtr;//O’rinli, garchi // ko’rsatgich konstanta butun songa ko’rsatsa // ham o’zi konstanta emas public: int Funktsiya(int i=0) const { count=i++; intPtr =&i; cout<<*intPtr; return count; } }; int main() { Sinf S; S.Funktsiya(); return 0; } Dastur ishlashi natijasida ekranga 1 chop etiladi. Shu vaqtgacha tuzgan dasturlarimiz berilgan ma’lumotlar ustida biror-bir amallarni bajaruvchi proseduralar ketma-ketligidan iborat edi. Prosedura va funksiyalar ham o’zida aniqlangan ketma-ket komandalar to’plamidan iboratdir. Ob’yektga yo’naltirilgan dasturlashning asosiy maqsadi berilganlar va ular ustida amal bajaruvchi proseduralarni yagona ob’yekt deb qarashdan iboratdir. Masalan: non, avtomobil, odam … ob’yektlari. Download 86.61 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling