שיחה:C++/פולימורפיזם
< שיחה:C++
תגובה אחרונה: לפני 15 שנים מאת Johnny Zoo בנושא פונקציה וירטואלית טהורה
פונקציה וירטואלית טהורה
עריכהשגיאה בתוכן: ניתן להגדיר פונקציה וירטואלית טהורה!
class A {
public:
virtual int f() = 0
{
return 42;
}
};
הקוד תקני לגמרי. ybungalobill 14:42, 2 באוקטובר 2009 (IST)
- מעניין, זה חדש לי. האם זה לא חסר טעם בהתחשב בעובדה שלא ניתן ליצור את האובייקט הנ"ל, וכל מחלקה שמרחיבה אותו חייבת לממש את הפונקציה הזו (אם אני לא טועה, לא נגעתי ב-CPP כבר הרבה זמן)? Johnny Zoo 16:39, 2 באוקטובר 2009 (IST)
- לא, זה לא חסר טעם. פונקציה וירטואלית טהורה משמעותה: המחלקה היורשת צריכה לממש את הפונקציה. אבל מחלקת האב יכולה לתת מימוש "ברירת מחדל" שמחלקת הבן תוכל להשתמש בו:
class B : public A {
int f() {
cout << A::f() << endl;
return 43;
}
};
- ybungalobill 20:43, 2 באוקטובר 2009 (IST)
- טוב לדעת. לא ידעתי שהאפשרות הזו קיימת - מזכיר מחלקה מופשטת של Java. Johnny Zoo 12:53, 5 באוקטובר 2009 (IST)
- ybungalobill 20:43, 2 באוקטובר 2009 (IST)