פורום תרגיל 4

שאלות - מטלה 4

 

תמונה של אטלס אביעד
שאלות - מטלה 4
על ידי אטלס אביעד בתאריך 3/12/2015, 21:32
 

דר' אופיר שלום,

כמה שאלות בנוע למטלה:

א) לא הבנתי בדיוק כיצד ליישם את האובייקט של node. האם ניתן לבנות struct בתוך הclass שלי? או שאני מחויב לבנות class בשביל node? ואם זה המצב - האם צריך לבנות בנאי, setters,getters בשביל הclass של node?

ב) הבנתי בשיעור שמשתמשים באופרטור delete רק על מנת לשחרר זיכרון של האובייקט שהקצנו על הheap. במטלה כתוב שהdtor אמור "לנקות את הזיכרון". זה נשמע שאנו אמורים לשחרר זיכרון, אך הרשימה היא בעצם אוסף של node-ים שלא הוקצו דינמית. האם אנו אמורים להשתמש בdelete למרות שלא הייתה הקצאה דינמית?

תודה מראש ושבת שלום,

אביעד 

תמונה של פלא אופיר
תשובה ל: שאלות - מטלה 4
על ידי פלא אופיר בתאריך 4/12/2015, 15:43
 

א. 1. כמו שכתוב בתרגיל זה לא חובה.

2. אם בחרתה לעשות את זה, אתה יכול לעשות מחוץ ל class או בתוכו. בתוכו זה נקרא nested class ואם אתה רוצה ללמוד על זה אתה יכול לקרוא כאן:

http://en.cppreference.com/w/cpp/language/nested_types

שוב, אין פה חובה לעשות את זה.

אם החלטתה לכתוב class כזה, אין חובה לכתוב getters, setters וכו'.

 

ב. מכיוון שאתה לא יודע בזמן קמפול כמה nodes יהיו לך ברשימה אתה חייב לשים אותם בערימה הדינמית. אם אתה חושב שאתה יכול לעשות את זה בצורה לא דינמית, פנה אלי באופן אישי ותראה לי איך אתה עשיתה את זה / חושב לעשות את זה.

 

בהצלחה

 

אופיר