بازگرداندن یک ارجاع به یک عضو داده ی خصوصی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

بازگرداندن یک ارجاع به یک عضو داده ی خصوصی

0 امتیاز

بازگرداندن یک ارجاع به یک عضو داده ی خصوصی چیه؟ 

 

int& time::badsethour(int hh)
{
hour=(hh>=0 && hh<24) ? hh : 0;
return hour;
}
.
.
.
.
int main(){
time t;
int& hourRef = t.badsethour (20);
cout<<"hour before modification: "<<hourRef;
hourRef=30;
cout<<"hour after modification: "<<t.getHour  //chera hour = 30 mishe?

 

سوال شده فروردین 11, 1393  بوسیله ی programmer (امتیاز 139)   9 19 32
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

+1 امتیاز
 
بهترین پاسخ
بخاطر اینکه تابع ()badsethour یک نوع برگشتیش یک ارجاع هست.

و شما در اون تابع یک ارجاع به متغییر hour رو برگردوندید .

و یک ارجاع ایجاد کردید به نام hourRef و تابع ()badsethour رو صدا زدید و نتیجه ی برگشتی اون رو در hourRef ریختید .

یعنی hourRef میشه ارجاعی به hour .

و در آخر مقدار hourRef رو تغییر دادید به 30 . چون hourRef ارجاعی به hour هست . با این کار درواقع شما مقدار hour رو تغییر دادید به 30 .
پاسخ داده شده فروردین 11, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد مرداد 7, 1393 بوسیله ی BlueBlade
...