C++ tilida klasslar va ularni qo’llanilishi


Download 38.37 Kb.
bet1/2
Sana05.01.2022
Hajmi38.37 Kb.
#230862
  1   2
Bog'liq
C TILIDA KLASSLAR VA ULARNI QO’LLANILISHI


C++ TILIDA KLASSLAR VA ULARNI QO’LLANILISHI

Ifoda bitta yoki bir nechta operandlardan iborat bo'lib, eng oddiy holatda bitta so'zma-so'z yoki ob'ektdan iborat. Ushbu ifoda natijasi uning operandining r-qiymati. Masalan:

void pichirlash () {

3.14159;


melankoliya;

yuqori chegara;

}

3.14159 ifoda qiymatini baholash natijasida 3.14159 juft tipli bo'ladi, "melanxoliya" iborasi const char tipidagi qatorning birinchi elementining manzili. TopBound ifodasining qiymati topBound ob'ektining qiymati bo'lib, uning turi ob'ektning o'ziga tegishli bo'ladi.


Ifodaning umumiy holati bu bir yoki bir nechta operandlar va ularga nisbatan qo'llaniladigan ba'zi operatsiyalar:

ish haqi + oshirish

ivec [hajmi / 2] * delta

birinchi_name + "" + 1ast_name

Operatsiyalar tegishli belgilar bilan ko'rsatiladi. Birinchi misolda ish haqi va ish haqini oshirishga qo'shimcha qo'llaniladi. Ikkinchi iborada o'lcham 2 ga bo'linadi. Qo'shtirnoq ivec qatori uchun indeks sifatida ishlatiladi. Olingan qator elementi delta bilan ko'paytiriladi. Uchinchi misolda ikkita satrli ob'ektlar bir-biri bilan va satr bilan yozilgan bo'lib, yangi satr ob'ekti yaratiladi.
Bitta operandga qo'llaniladigan operatsiyalar bir martali deyiladi (masalan, manzilni olish (va) va kechiktirish (*)) va ikkita operandga qo'llaniladigan operatsiyalar ikkilik deb nomlanadi. Bitta va bitta belgi bir martalik yoki ikkilik bo'lishiga qarab turli xil operatsiyalarni anglatishi mumkin. Shunday qilib,

* ptr ifodasida

* bir tomonlama dereferferentsiya operatsiyasini anglatadi. Ushbu ifoda qiymati ptr-da joylashgan manzilning qiymati. Agar yozsangiz:

var1 * var2,


u holda yulduzcha ko'payishning ikkilik operatsiyasini bildiradi.
Ifodani baholash natijasi har doim, agar boshqacha ko'rsatilmagan bo'lsa, r-qiymati. Arifmetik ifoda natijasining turi operandlarning turlari bilan belgilanadi. Agar operandalar har xil bo'lsa, turdagi konversiya oldindan belgilangan qoidalar to'plamiga muvofiq amalga oshiriladi. 
Ifodali kompozitsion bo'lishi mumkin, ya'ni bir nechta pastki izohlarni birlashtirishi mumkin. Bu erda, masalan, nolga tengsizlikni tekshiradigan ibora, ishora va u ko'rsatgan ob'ekt (agar u biror narsaga ishora qilsa):

ptr! = 0 && * ptr! = 0

Bir ibora uchta pastki izohlardan iborat: ptr ko'rsatkichini tekshirish, pereferferentsiya ptr va natijani yo'qotish natijalarini tekshirish. Agar ptr sifatida belgilangan bo'lsa

int ival = 1024;

int * ptr = & ival;

keyin hayotni yo'qotish natijasi 1024 bo'ladi va ikkala taqqoslash ham haqiqatni beradi. Butun iboraning natijasi ham to'g'ri bo'ladi (&& operatori mantiqiy VA degan ma'noni anglatadi).


Agar siz ushbu misolga diqqat bilan qarasangiz, operatsiyalarni bajarish tartibi juda muhimligini ko'rasiz. Aytaylik, agar ptr kechiktirish operatsiyasi uni 0 bilan taqqoslashdan oldin qilingan bo'lsa, ptr qiymati nolga teng bo'lsa, bu dasturning ishdan chiqishiga olib kelishi mumkin. AND operatsiyasi holatida harakatlar tartibi qat'iy belgilanadi: birinchidan, chap operand baholanadi, agar uning qiymati noto'g'ri bo'lsa, o'ng operand umuman hisoblanmaydi. Amallarni bajarish tartibi har doim ham aniq bo'lmaydigan, C va C ++ dasturchilarini boshlash uchun juda ko'p xatolarga olib keladigan ustuvorliklari bilan belgilanadi. Ustuvorliklar 4.13 bo'limida berilgan, ammo hozircha C ++ tilida, eng tanishlaridan boshlab, barcha operatsiyalar haqida gaplashamiz.

 
Download 38.37 Kb.

Do'stlaringiz bilan baham:
  1   2




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