
06-09-2008, 14:23
|
|
|
|
חבר מתאריך: 30.08.06
הודעות: 23
|
|
|
בעיה עם Scope בc++
שלום יש לי כניראה חור בהבנה אבל ראיתי היום קוד כזה והוא עובד :
קוד:
class stam{
//class code ..
friend stam operator +(stam &a,stam&b)
}
stam stam::operator +(stam &a, stam &b){
stam ans;
ans.someValue = a.someValue + b.someValue;
return ans;
}
עכשיו מה שלא ברור לי הוא למה ans לא מת לאחר היציאה מהפונקציה - הרי לא הוקצה לו זיכרון דינאמי ולכן בעת היציאה מהפונקציה הוא אמור להשתחרר ולכן לא יכול להוות כערך החזרה ..
יכול להיות שהקטע קוד הזה לא טוב והוא עובד בפוקס? אם כן תוכלו לאמר לי איך לבנות את הפונקציה הזאת הרי זה לא הגיוני להקצות באמת זיכרון דינאמי על פעולת + כי יש מצב שמשתנה יחוס יקבל את התוצאה ואז הוא לא יוכל להשתחרר ..
|