העמסת אופרטורים ב CPP-עזרה
הבנתי את רוב הנושא אבל יש כמה דברים שלא יושבים לי היטב ואשמח לעזרה
הדוגמא שעבדנו עליה זה מחלקה של המספר הרציונאלים(מכילה שדה "מונה" ושדה "מכנה")
אני יודע לעשות העמסה של +/גדול /כפול/שונה/++/--
יש לי בעיה עם COUT ועם =
הרי ידוע שאם a,b הם מופעים של המחלקה ניתן לעשות a=b ואז כל השדות יועתקו
ראינו את המימוש הבא
this->mone = num.mone;
this->mechane = num.mechane;
return *this; }
הבנתי שזה נועד שאוכל לעשות a=b=c=d וכו' וכו'
לא הבנתי את המימוש הנ"ל
את החלק
Rational:
perator=(const Rational& num)
הבנתי כמובן, זה מימוש של = שמשייך למחלקה Rational ושמקבל num מסוג Rational (יש עליו & כך שכל שינוי שנעשה עליו ישתנה גם בתוכנית) וישמור עליו עם קבוע כדי שלא נשנה אותו בטעות בפונקציה
אגב, למה יש את ה & אם יש את ה CONST , הרי גם ככה לא ניתן לשנות אותו?
האם כדי לחסוך את הבנאי?
והחלק שאני באמת לא מבין... מה זה const Rational&
מה זה אומר שהיא מחזירה התייחסות ל Rational ושזה קבוע... לא הבנתי
כמו כן מימוש של COUT
בהצרה כתבנו
ובמימוש
out << num.mone << '/' << num.mechane << endl;
return out;}
אני יודע מה זה מחלקה חברה(מחלקה שיש לה גישה למשתנים פרטיים של מחלקה אחרת בCPP יש את זה כמובן)
לא הבנתי כ"כ את ההצהרה והמימוש, אשמח להסבר
מה זה אומר שהיא מחזירה ostream&
והיא מקבלת ostream& out
מה זה בידיוק ה OUT הזה ואיך הוא משמש בפונקציה ככה
אשמח להסבר חברים
תודה רבה!!
הבנתי את רוב הנושא אבל יש כמה דברים שלא יושבים לי היטב ואשמח לעזרה
הדוגמא שעבדנו עליה זה מחלקה של המספר הרציונאלים(מכילה שדה "מונה" ושדה "מכנה")
אני יודע לעשות העמסה של +/גדול /כפול/שונה/++/--
יש לי בעיה עם COUT ועם =
הרי ידוע שאם a,b הם מופעים של המחלקה ניתן לעשות a=b ואז כל השדות יועתקו
ראינו את המימוש הבא
const Rational& Rational::operator=(const Rational& num) { this->mone = num.mone;
this->mechane = num.mechane;
return *this; }
הבנתי שזה נועד שאוכל לעשות
לא הבנתי את המימוש הנ"ל
את החלק
Rational:
הבנתי כמובן, זה מימוש של = שמשייך למחלקה Rational ושמקבל num מסוג Rational (יש עליו & כך שכל שינוי שנעשה עליו ישתנה גם בתוכנית) וישמור עליו עם קבוע כדי שלא נשנה אותו בטעות בפונקציה
אגב, למה יש את ה & אם יש את ה CONST , הרי גם ככה לא ניתן לשנות אותו?
האם כדי לחסוך את הבנאי?
והחלק שאני באמת לא מבין... מה זה const Rational&
מה זה אומר שהיא מחזירה התייחסות ל Rational ושזה קבוע... לא הבנתי
כמו כן מימוש של COUT
בהצרה כתבנו
friend ostream& operator<<(ostream&, Rational);ובמימוש
ostream& operator<<(ostream& out, Rational num){out << num.mone << '/' << num.mechane << endl;
return out;}
אני יודע מה זה מחלקה חברה(מחלקה שיש לה גישה למשתנים פרטיים של מחלקה אחרת בCPP יש את זה כמובן)
לא הבנתי כ"כ את ההצהרה והמימוש, אשמח להסבר
מה זה אומר שהיא מחזירה ostream&
והיא מקבלת ostream& out
מה זה בידיוק ה OUT הזה ואיך הוא משמש בפונקציה ככה
out << num.mone << '/' << num.mechane << endl;אשמח להסבר חברים
תודה רבה!!