ערכתי לאחרונה בתאריך 03.08.08 בשעה 20:03 בברכה, ronen333
מעכשיו אני אשאל אותך פה שאלות למה זה יהיה הרבה יותר קשור מאשכול על C# XD.שאלה:
class Animal { public: char name; int kennel; int days; Animal(); void PrintName(); }; class Cat:public Animal { public: catFood food; Cat(); void CatBill(); };
Animal *p; Animal b; Cat c; p = &b; p = &c;
|
מה ההבדל בין השימוש שP כמצביע(אין לי מושג למה) יקבל הפניה לB ואז ההפניה שלו משתנה לC...
|=
מאוחר יותר הוא גם עושה משהו כזה:
((Cat *)p)->food = dryCatFood; ((Cat *)p)->CatBill();
|
זה לא בעצם DOWN CASTING? אני די בטוח שאסור לעשות DOWN CASTING אם האובייקט לא נוצר תחילה כילד.. הוא עושה פה המרה למטה מאב לילד בלי שהוא היה ילד בתחילה |=.
והחץ המוזר הזה זה אמור להיות תחליף לנקודה שבC#.. לזימון פעולה מאוביקט?
לפי איך שאני רואה את זה מסבירים באתר של C++ כ-תמיד תשמשו במצביעים.
כאילו C++ לא עושה משהו דפוק בלי זה.. כמו ליצור מערך אובייקטים אז ליצור אותו עם *..

