שאלה ממבחן ב c++

togi12341

New member
שאלה ממבחן ב c++

2012_A_A


לפי דעתי התשובה היא ג' אבל אני לא בטוח לגביי מה שמורן כותב.


מה דעתכם ?
 

togi12341

New member
שאלה נוספת מאותו מבחן

היי,

מה לדעתכם התשובה הנכונה פה ?


לפי שורה 3 Two חייב להיות נורש מ One ולכן ONE חייב להיות מעל TWO,

כלומר תרשים II ו VI לא יכולים להתקיים ולכן א',ב',ג', ה' יורדים מהפרק.

נשאר לי רק ד' או ו'.

הייתי בוחר ב ד' אבל אני לא בטוח.

מה דעתכם?

מה אומרת שורה 5 ? שמופעל copy c'tor ?
 
ובכן

כפי שאמרת, ע"פ שורה 3 Two יורש (בצורה ישירה או עקיפה) מ-One, מה שפוסל את תרשימים II,VI, וכן III.
כלומר, נשארת בדיוק תשובה ד.

בשורה 5 מופעל operator* על three. התוצאה שלו יכולה להיות כל דבר, ולכן אי אפשר להסיק מהשורה הזאת משהו רלוונטי.
גם בשורה 6 לא מופעל בנאי העתקה, אלא השמה. גם אם היה מופעל בנאי, לא היה אפשר להסיק משהו בלי לדעת אילו בנאים קיימים.
 

BravoMan

Active member
כפי שאני רואה זאת, רק הטענה של שירן נכונה

ולכן אף אחת מהתשובות (ו) לא נכונה.

לגבי הטענה של מורן: מה שקורה בשורה 19, זה שבנאי של A, מאתחל את המשתנה a עם ערך var שקיבל (מ-main במקרה שלנו).

למעשה, אין כאן מה לשחרר. בתרגיל הספציפי, הערך הוא בכלל קבוע מספרי (שורה 26 ו-35) אבל גם אם הוא היה אובייקט, היה מופעל copy constructor באתחול, ו-destructor כשהאובייקט המכיל את המשתנה היה מושמד.
 
למעלה