ctors ושחרור זכרון
ב cpp ה dtor נקרא רק אם ה ctor בוצע לגמרי. כלומר, אם באיזשהיא שורה נזרקה איזו שגיאה וה ctor לא הושלם, אזי ה dtor לעולם לא יקרא. מה שאומר למעשה, שלא מומלץ להקצות זכרון בתוך ה ctor בגלל אותה סיבה. במקרה ותזרק שגיאה, סביר להניח שתופיע דליפת זכרון מאחר והזכרון שהקצנו לעולם לא ישתחרר. אז השאלה היא למעשה אם משהו מכאן תקף גם לגבי .net? אם ה ctor נכשל, האם מטודת ה finalize תקרא בכל זאת? במקרה ונכשל ניסיון להקצות זכרון - האם יכולה להופיע במקום דליפת זכרון, או האם ה GC יוכל להתמודד עם זה? יומטוב
ב cpp ה dtor נקרא רק אם ה ctor בוצע לגמרי. כלומר, אם באיזשהיא שורה נזרקה איזו שגיאה וה ctor לא הושלם, אזי ה dtor לעולם לא יקרא. מה שאומר למעשה, שלא מומלץ להקצות זכרון בתוך ה ctor בגלל אותה סיבה. במקרה ותזרק שגיאה, סביר להניח שתופיע דליפת זכרון מאחר והזכרון שהקצנו לעולם לא ישתחרר. אז השאלה היא למעשה אם משהו מכאן תקף גם לגבי .net? אם ה ctor נכשל, האם מטודת ה finalize תקרא בכל זאת? במקרה ונכשל ניסיון להקצות זכרון - האם יכולה להופיע במקום דליפת זכרון, או האם ה GC יוכל להתמודד עם זה? יומטוב