O. X. Azamatov


Binar amallarni qo‘shimcha yuklash



Download 1,82 Mb.
Pdf ko'rish
bet71/119
Sana19.07.2021
Hajmi1,82 Mb.
#123208
1   ...   67   68   69   70   71   72   73   74   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

9.2. Binar amallarni qo‘shimcha yuklash 
Ixtiyoriy 
  binar  amali  ikkita  usulda  tavsiflanish  mumkin:  yoki  bitta  parametrli 
funksiya  komponentasi  sifatida,  yoki  ikkita  parametrli  global  (do‘stona  bo‘lishi 
mumkin) funksiya sifatida.  
Birinchi  xolatda  x y    ifoda  x.operator (y),  ikkinchi  holda  esa  operator 
(x,y) 
chaqirilishini bildiradi.  
Aniq  sinf  doirasida  qayta  yuklangan  operatsiyalar  faqat  parametrli  nostatik 
komponentli  funksiya  orqali  qayta  yuklanadi.  Sinfdagi  chaqiriladigan  obyekt 
avtomatik ravishda birinchi operand sifatida qabul qilinadi. 
Misol: 
class complex  

   double re, im; 
 public: 
   complex(double r, double i) { re=r; im=i; } 
   complex operator+(complex); 
   complex operator+(double); 
complex& operator+=(complex); 
complex& operator+=(double x); 
}; 
inline complex operator+(complex b) //complex+complex 
{ complex c; c.re=re+b.re; c.im=im+b.im; return c;}   


78 
 
 
inline complex operator+( double x) //complex+double 
{ return complex(re+x, im);}   
inline complex& complex::operator+=(complex b) //complex+=complex 
 {  complex c; re += b.re; im += b.im; c.re=re; c.im=im; return c; } 
inline complex& complex::operator+=(double x) //complex+=double 
{  re += x; return *this; } 
Funksiya – amalni chaqirish: 
   complex c = a + b;     // qisqa yozuv 
   complex d = a.operator+(b); // oshkora chaqirish 
Shuni  ta’kidlab  o‘tish  kerakki  double+complex  tipidagi  qo‘shishni  bu  usulda 
qo‘shimcha yuklash mumkin emas. 
Sinfdan tashqari yuklanadigan operatsiyalar ikkita operandga ega bo‘lishi kerak. 
Ulardan biri sinf tipiga ega bo‘lishi lozim. 
Qiymat  qaytarish  uchun  vaqtinchalik  o‘zgaruvchidan  foydalaniladi.  Bu 
maqsadda konstruktordan: 
inline complex operator +(complex b)  
{ return complex(re+b.re, im+b.im)}   
va this ko‘rsatkichidan foydalanish mumkin: 
inline complex operator+=(complex b)  
{ re+=b.re, im+=b.im; return *this}   
Misol: 
class complex  

   double re, im; 
 public: 
   complex(double r, double i) { re=r; im=i; } 
friend  complex operator+( complex , complex); 
friend  complex operator+( complex ,double); 
friend  complex operator+( double, complex); 


79 
 
}; 
inline complex operator+(complex a, complex b) // complex+complex 
{ complex c; c.re=a.re+b.re; c.im=a.im+b.im; return c;}   
inline complex operator+(complex a, double x) //complex+double 
{ complex c; c.re=a.re+x; c.im=im; return c;}   
inline complex operator+(double x, complex a) // double + complex 
{ complex c; c.re=a.re+x; c.im=im; return c;}   
 
Funksiya – amalni chaqirish: 
   complex c = a + b;     // qisqa yozuv 
   complex d = operator+(a,b); // oshkora chaqirish 

Download 1,82 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   119




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish