Aliyev o. A, Xo‘jamuratov b. «C++ da dasturlash» fanidan tajriba ishlarini bajarish bo‘yicha uslubiy ko‘rsatma


Download 2.01 Mb.
bet24/27
Sana20.11.2023
Hajmi2.01 Mb.
#1787789
1   ...   19   20   21   22   23   24   25   26   27
Bog'liq
file8

operator
b) ikkinchi xolda (sinf doirasidan tashqari tavsiflash):
operator
()
Inkrement va dekrement amallarini qo’shimcha yuklash
C++ tilining zamonaviy versiyalarida prefiks ++ va -- operatsiyalarni qo’shimcha yuklash boshqa operatsiyalarni yuklashdan farq qilmaydi, postfiks shakldagi ++ va -- amallarini qayta yuklaganda yana bir int tipidagi parametr kiritilishi kerak. Agar qo’shimcha yuklash uchun global funksiya ishlatilsa uning birinchi parametri sinf tipiga, ikkkinchi parametri int tipiga ega bo’lishi kerak.
Dasturda postfiks ifoda ishlatilganda butun parametr xam qiymatga ega bo’ladi.
Quyida postfiks va prefiks ++ va – amallari uchun funksiya – amallarga misollar keltirilgan.
Misol:
complex &complex::operator ++() // prefiks uchun komponenta
{ re ++; return *this;}
complex &complex::operator--(int k) // postfiks uchun komponenta
{ re--; return *this;}
complex &operator ++(complex& a) // prefiks uchun do’stona
{ a.re ++; return a;}
complex &operator ++(complex& a, int k) // postfiks uchun do’stona
{ a.re ++; return a;}
Indekslash va funksiyani chaqirish amallarini qo’shimcha yuklash
Dumaloq qavs () amalini qo’shimcha yuklash sinf obyektiga funksiya chaqirig’i sintaksisini qo’llashga imkon beradi. Operandlar soni ixtiyoriy bo’lishi mumkin. Kvadrat qavs massiv elementi sintaksisini qo’llashga imkon beradi.
//------ Simvolni ajratish amali -------------------
char string::operator()(int n)
{
if n
else return ‘\0’;}
//------ Ostki satrni ajratish amali -------------------
string string::operator()(int n1, int n2) {
string tmp = *this;
delete tmp.Str;

Download 2.01 Mb.

Do'stlaringiz bilan baham:
1   ...   19   20   21   22   23   24   25   26   27




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