ירושת אופרטורים ב ++C

WarLord

New member
ירושת אופרטורים ב ++C

נניח שיש לי מחלקה A שמיצגת וקטור ויש לה 2 data members, X&Y למחלקה זו מימשתי פונקציה שמחברת 2 וקטורים. אני כותב מחלקה חדשה B שיורשת את A ומוסיף לה את Z כדי להפוך את הווקטור לתלת מימדי. עכשיו מה קורה עם האופרטור + ? צירפתי מימוש אפשרי (ועובד) - השאלה האם יש למשהו רעיון יותר אלגנטי ונקי ? זו כמובן רק דוגמא לנושא של ירושת אופרטורים
 

ihovav

New member
אז ככה :

קודם כל - תשתדל שלא להגדיר DATA MEMBERS ב PUBLIC, רק ב PRIVATE או PROTECTED דבר שני - אם אתה כותב קלאס שיורש מקלאס אחר - ולשניהם יש פעולה משותפת (PRINT, אופרטורים וכ"ו) - אתה צריך להגדיר את המטודה כ ווירטואלית - ובמימוש של הקלאס היורש אתה מבצע קודם קריאה למטודה ב BASE CLASS ואח"כ את שארית הפעולה חשוב להקפיד על זה - כי זה עלול לפגוע לך בפולימורפיזם בתכנית
 

WarLord

New member
תודה אבל

לגבי העניין עצמו - יש דרך "נקיה" יותר שאתה מכיר למימוש אופרטור + של המחלקה B ?
 

ihovav

New member
ממש לא

תמיד תצתרך לקרוא למטודה ב BASE CLASS ככה שאני לא רואה בעיה עם המימוש הזה - למעט מה שציינתי לפני כן בכל מקרה - אני פותח עכשיו אתץ חלון ה צ´ט - תיכנס ונדבר קצת
 
למעלה