עכשיו אתה כבר מדבר על קונספט של OOP
זה נקרא פולימורפיזם. הרעיון הוא שאתה יכול להתייחס לאובייקטים שונים, אבל שיורשים מאותה מחלקה, באותה הצורה. למה זה טוב? נניח יש לך מחלקה "בן אדם". אחד המאפיינים של המחלקה הוא "שם". יש לך גם מחלקה "עובד" שיורשת מן הסתם מ"בן אדם". יש גם מחלקה "מנהל", שיורשת מ"עובד" ומרחיבה את יכולותיו וכו' וכו'. ונניח גם "לקוח" שיורשת מ"בן אדם". אתה רוצה ליצור פונקציה שמקבלת מערך של עובדים, מנהלים, או לקוחות ומדפיסה את השמות של כולם (ואולי פרטים נוספים המשותפים לכל בני האדם - כמו כתובת, מספר טלפון ועוד). מה יהיה הטיפוס של איברי המערך? הטיפוס יהיה מצביע ל"בן אדם". למרות זאת, המערך לא יכיל "סתם" בני אדם, אלא לקוחות, עובדים ומנהלים, אבל הפונקציה לא צריכה לדעת את זה מכיוון שהיא מתייחסת למאפיינים המשותפים שלהם בלבד. זאת הסיבה לשימוש במצביע למחלקת בסיס מסוימת ובאמצעותו להצביע למחלקת בן כלשהי. במקרה שלך אין באמת שימוש בפולימורפיזם, אלא סתם הדגמה ל"טיפוס מחלקתי" (Class wide). אתה כמובן יכול להשתמש במצביע לאבא, אבל זכור שדרך המצביע הזה אתה לא יכול לגשת למאפיינים של הבן, אלא אם תשתמש בהסבה. כלומר תגיד מפורשות לקומפיילר שאתה בטוח שזה מחלקת הבן... אני מקווה שעכשיו יותר ברור.