תרגול גבולות ספרייה ותאימות¶
הרחיבו את מחלקת Counter מההרצאה כך שתשמור ב־Impl גם את מספר העדכונים המוצלחים. הוסיפו פעולת updates והחליטו אם הוספה של אפס נחשבת עדכון. אל תשנו את שדות המחלקה שב־header.
ממשו את חמש פעולות ממשק ה־C מתוך ההרצאה בקובץ C++ אחד. הגדירו שיצירה מאפסת את הפלט לפני ניסיון הקצאה, שהוספה שלילית או חריגה מהמגבלה אינה משנה מצב, ושקריאה שנכשלת אינה משנה את פרמטר הפלט שלה. הוסיפו גם את פונקציית הגרסה.
כתבו לקוח שבודק יצירה, הוספה, כשל בגלל גבול, קריאה והשמדה. הסבירו מדוע בדיקת handle != nullptr אינה מוכיחה שה־handle עדיין חי, ומדוע אין להשתמש ב־delete מצד הלקוח.
הגישו טבלה עם שלושה שינויים: הוספת שדה פרטי ל־Impl, שינוי משמעות המגבלה, והחלפת int32_t ב־int64_t בפרמטר. נתחו בנפרד תאימות מקור, תאימות בינארית ותאימות התנהגותית. אין צורך לבנות DLL בשלב הזה.