10-06-2008, 15:27
|
|
|
חבר מתאריך: 04.05.08
הודעות: 32
|
|
abstract class וpolymorphism ב-C++ - בעיה
שלום,
מוגדרת לי המחלקה צורה - FIGURE שהיא ABSTRACTית, כלומר מכילה בין השאר את הפונקצייה הבאה:
virtual void draw(CDC *dc)=0;
מהמחלקה הזאת יורשים הרבה CLASSים כמו לדוגמה המחלקה EthanRect (שאם זה חשוב-יש בה בנאי שמממש את הבנאי של FIGURE ואז מוסיף לו)- מרובע.
עד עכשיו הסתפקתי בכך שFIGURE יהיה CLASS שבו אני פותח וסוגר סוגריים מסולסלים לכל הפונקציות (בלי השווה ל0) ואז הכל עבד כשורה אבל עכשיו שהחלטתי לעשות PURE VIRTUAL FUNCTIONS ולהפוך אותו לABSTRACTי, זה לא עובד.
ב-main שלי יש את ההגדרות הבאות:
Figure *F[5000];
F[0]=new EthanRect(start,end);
התקלה בעקבות הNEW הזה היא: Cannot instantiate abstract class
מה לא בסדר? הרי המופע הוא מסוג הCLASS היורש, לא מסוג הCLASS האבסטרקטי.
|