פורסם 2014 ביוני 2211 שנים נניח שאני יוצר מופע של המחלקה A, שמכילה (לא יורשת) את המחלקה B.למשל כך:class B{public: B() { cout << "hello B" << endl; }};Class A {public: A() { cout << "hello A" << endl; } B test;};ביצירת מופע, איזה בנאי יופעל קודם? של A או של B?חשבתי שקודם של A, כי הבנאי זה הדבר הראשון שמופעל ביצירת מופע, אבל מסתבר שדווקא הבנאי של B. למה זה?
פורסם 2014 ביוני 2211 שנים לפני שמבוצע הקוד של הבנאי, מאותחלים כל שדות המחלקה (בסדר בו הוגדרו במחלקה).(אם לבנאי הייתה רשימת אתחול, אז השדות היו מאותחלים לפיה. זה מתקשר לכך שבטח שמעת שלא מומלץ לאתחל שדות בתוך הבנאי אלא ברשימת האתחול.)
פורסם 2014 ביוני 2211 שנים מחבר תודה, ברשותך שאלה נוספת (בלי קשר לשאלה הראשונה ולקוד שצירפתי)נניח שמחלקה A יורשת מ-B ומ-C. איזה בנאי יופעל קודם ביצירת מופע של A, האם C או B? נערך 2014 ביוני 2211 שנים על-ידי א
פורסם 2014 ביוני 2211 שנים לפי הסדר שבו כתבת את המחלקות שמהן A יורשת.(אלא אם כן יש ירושה וירטואלית, ואז החוקים קצת משתנים.)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.