עבור לתוכן

שימוש בVECTOR בC++ שיכיל אוביקטים של קלאס וקלאס שיורש ממנו.

Featured Replies

פורסם

הגדרתי קלאס A וקלאס B שיורש ממנו ומוסיף שדות.

בMAIN שלי אני בונה VECTOR של <A>.

האם אפשר להכניס לVECTOR הנ"ל גם אוביקטים מסוג B?

פורסם

לא. הפולימורפיזם של ++C עובד רק עם מצביעים. את תגדיר את הוקטור כוקטור של <*A> אז תוכל לקבל גם מצביעים לאובייקטים מסוג B. באופן כללי עדיף לעבוד עם מצביעים, אחרת כל פעם שתכניס אובייקט לרשימה אז בעצם ייכנס אליה עותק שלו ולא האובייקט המקורי.

פורסם
  • מחבר

חששתי שכך.

תודה.

פורסם

לעמן הסדר הטוב, הפולימורפיזם של C++ "עובד יופי" גם עם רפרנסים, אבל לא ניתן להגדיר וקטור של רפרנסים.

The more you know

פורסם

רפרנס ממומש ע"י מצביעים...

יש לודא שמשתמשים בפונקציות וירטואליות בשביל פולימורפיזם תקין.

פורסם

רפרנס ממומש ע"י מצביעים...

ברור, אבל מבחינת השפה זה לא אותו דבר. לדוגמא, לא ניתן להגדיר וקטור של רפרנסים :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים