Объектга йўналтирилган программалаш


Download 0.58 Mb.
bet39/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   35   36   37   38   39   40   41   42   ...   71
Bog'liq
С ОЙП

Nuqta1=Nuqta2=Nuqta3;
Қуйидаги мисол қиймат бериш операторини қайта юклашни намоён қилади:
#include
class Nuqta
{
int x,y;
public:
Nuqta(int _x,int _y){x=_x; y=_y;}
Nuqta(){x=0; y=0;}
Qiymat_xy(int & _x,int & _y){_x=x; _y=y;}
bool operator==(Nuqta ob);
Nuqta & operator=(Nuqta & ob);
};
bool Nuqta::operator==(Nuqta ob)
{
return (x==ob.x && y==ob.y);
}
Nuqta & Nuqta::operator=(Nuqta & ob)
{
if (this==&ob) return *this;
x=ob.x;
y=ob.y;
return *this;
}
int main()
{
int a,b;
Nuqta Nuqta1(10,20), Nuqta2(20,25), Nuqta3;
Nuqta3=Nuqta2;
if(Nuqta2==Nuqta3)
cout<<"Nuqta2 va Nuqta3 o'zaro teng.\n";
else cout<<"Nuqta2 va Nuqta3 o'zaro teng emas.\n";
Nuqta3=Nuqta2=Nuqta1;
if(Nuqta1==Nuqta3)
cout<<"Nuqta1 va Nuqta3 o'zaro teng.\n";
else cout<<"Nuqta1 va Nuqta3 o'zaro teng emas.\n";
Nuqta3.Qiymat_xy(a,b);
cout<<"Nuqta3.x="<ишлаши натижасида экранга
Nuqta2 va Nuqta3 o'zaro teng.
Nuqta1 va Nuqta3 o'zaro teng.
Nuqta3.x=10 Nuqta3.y=20
хабарлари чоп этилади.
Қиймат бериш амалини қайта юклашда мазмунан хатога олиб келадиган
Nuqta1=Nuqta1;
кўринишдаги ўзини ўзига юклаш ҳолати алоҳида назорат қилиниши керак бўлади. Чунки қиймат бериш оператори бажарилишида олдин чап тарафдаги операнд хотираси тозаланади ва кейинчалик шу жойга ўнг томондаги операнднинг ҳақиқатга тўғри келмайдиган қийматини жойлаштиради. Шу сабабли, юқоридаги мисолда operator=() функцияси

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   35   36   37   38   39   40   41   42   ...   71




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