1.4 - ייצוג אובייקט ואחסון - תרגול
תרגול - אותו מקום ושני מחזורי חיים¶
הגדירו מחלקה בשם Item ששומרת מספר ומדפיסה אותו בבנאי וב־destructor. הקצו לה אחסון מקומי באמצעות מערך bytes עם alignment מתאים. בנו אובייקט שערכו אחת־עשרה, השתמשו בו, השמידו אותו ובנו באותו מקום אובייקט שערכו עשרים ושתיים.
שמרו את תוצאת הבנייה החדשה במצביע חדש. אין לגשת דרך המצביע הישן אחרי ההשמדה, גם אם הכתובת המספרית זהה. הסבירו איזה אירוע התחיל וסיים כל lifetime.
בדיקת מבנה¶
הגדירו struct עם char, מספר בן 64 ביט ועוד char. הדפיסו sizeof, alignof ו־offsetof לכל שדה. כתבו איזה חלק מהתוצאה הוא חוזה של הטיפוסים שבחרתם ואיזה חלק תלוי ב־ABI וב־packing.
הסבירו למה שליחת sizeof bytes של המבנה אינה פורמט רשת טוב, גם אם כל השדות מאותחלים.
ייצוג של מספר¶
השתמשו ב־bit_cast כדי להציג את הייצוג של שני floatים: אחד ושתיים. בדקו קודם שהגודל וייצוג המספרים מתאימים לניסוי. השוו להמרה מספרית אל unsigned, והסבירו למה שתי הפעולות אמורות להפיק ערכים שונים.