samanta3000
پنج شنبه 13 مهر 1391, 19:12 عصر
سلام به همه دوستان عزیز
من یه سوال در مورد یکی از کدهای سربارگذاری داشتم که البته توی خیلی موارد دیده می شود
این کد سربارگذاری عملگر جمع برای جمع مختصات دو نقطه است
class loc{
int x,y;
public:
loc(){x=0;y=0;}
loc(int i,intj){x=i;y=j;}
void get_xy(int &i,int &j){i=x;j=y;}
loc operator +(loc op2);
};
loc loc::operator+(loc op2)
{
loc temp;
temp.x = op2.x +x;
temp.y = op2.y +y;
return temp;
}
main()
{
loc o1(10,10),o2(5,3),03
int x,y;
o3=o1+o2;
o3.get_xy(x,y)
cout<<o3
return 0;
;}
چرا توی این کد از شی tempاستفاده کرده است؟ در صورتیکه می توانست از this استفاده کند؟ اما در این حالت این شی مقدار صفر دارد و در صورت جمع شدن با مقدار op2 همان op2 می شود!! نه مجموع op2 و op1
این شی همان عملوند اول(عملوند سمت چپ) عملگر است که تابع را فراخوانده یا نه؟
اگر همان عملوند اولی است چطور مقدار آن به temp داده شده است؟
من یه سوال در مورد یکی از کدهای سربارگذاری داشتم که البته توی خیلی موارد دیده می شود
این کد سربارگذاری عملگر جمع برای جمع مختصات دو نقطه است
class loc{
int x,y;
public:
loc(){x=0;y=0;}
loc(int i,intj){x=i;y=j;}
void get_xy(int &i,int &j){i=x;j=y;}
loc operator +(loc op2);
};
loc loc::operator+(loc op2)
{
loc temp;
temp.x = op2.x +x;
temp.y = op2.y +y;
return temp;
}
main()
{
loc o1(10,10),o2(5,3),03
int x,y;
o3=o1+o2;
o3.get_xy(x,y)
cout<<o3
return 0;
;}
چرا توی این کد از شی tempاستفاده کرده است؟ در صورتیکه می توانست از this استفاده کند؟ اما در این حالت این شی مقدار صفر دارد و در صورت جمع شدن با مقدار op2 همان op2 می شود!! نه مجموع op2 و op1
این شی همان عملوند اول(عملوند سمت چپ) عملگر است که تابع را فراخوانده یا نه؟
اگر همان عملوند اولی است چطور مقدار آن به temp داده شده است؟