ABA


"חידה ב C++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14487 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14487
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   22:38   13.12.07   
אל הפורום  
  חידה ב C++  
 
   ערכתי לאחרונה בתאריך 13.12.07 בשעה 22:39 בברכה, Net_Boy
 

class CMonkey
{
public:
CMonkey(int a,int b,int c): y(a) , x(b+y) , z(c+x) {}

protected:
int x,y,z;
};

עבור הקריאה :


CMonkey C(1,2,3)

מה יהיו הערכים x,y,z בתוך C ותסבירו גם למה זה ככה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אין לי מושג איך להסביר רק תגיד לי אם אני צודק:| akoka 13.12.07 23:52 1
  שימוש פשוט ב-initializer member Limp Bizkit 14.12.07 05:25 2
  בנתיים שתיכם טעיתם :) זה לא טריויאלי כמו שזה נראה Net_Boy  14.12.07 09:49 3
  אני לא מבין גדול ב-C#... MeToR 14.12.07 12:41 4
     האמת אני גם חשבתי על זה אבל בצורה שונה קצת :| akoka 14.12.07 12:46 5
     לא נכון Net_Boy  14.12.07 13:09 7
  אם אף אחד לא יענה נכונה עד הערב אני אפרסם את הפיתרון Net_Boy  14.12.07 13:08 6
  התשובה היא כמו ש Metor אמר אבל רק עם שינוי קל עידן_הכלי 14.12.07 17:11 8
     התשובה נכונה אבל לא מהסיבות הנכונות Net_Boy  14.12.07 17:37 9
         טוב לדעת :-) עידן_הכלי 14.12.07 19:37 10

       
akoka

   23:52   13.12.07   
אל הפורום  
  1. אין לי מושג איך להסביר רק תגיד לי אם אני צודק:|  
בתגובה להודעה מספר 0
 
   1,3,6?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   05:25   14.12.07   
אל הפורום  
  2. שימוש פשוט ב-initializer member  
בתגובה להודעה מספר 0
 
   חוסך סירבול מיותר ומגביר את היעילות ב-constructor של המחלקה

הערכים יהיו :
y - 1
x - 2 + 1 = 3
z - 3 + 3 = 6

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   09:49   14.12.07   
אל הפורום  
  3. בנתיים שתיכם טעיתם :) זה לא טריויאלי כמו שזה נראה  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות
   12:41   14.12.07   
אל הפורום  
  4. אני לא מבין גדול ב-C#...  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 14.12.07 בשעה 12:42 בברכה, MeToR
 
אבל נראה לי שזה:
y-1
x-2
z-3

כי כש-y למשל מקבל את הערך של a, הוא עוד לא מתאתחל, כלומר הערך של y עוד לא הופך להיות 1, רק לאחר שהפונקציה מסיימת לשים את הערכים ל-x,y,z, הם מקבלים את הערכים.
כלומר, כש-x מקבל את b+y, אז y עוד לא קיבל עדיין את הערך 1, ולכן הוא בינתיים 0, ואותו דבר לגבי z.
רק כשזה כבר נכנס לפונקציה עצמה, הערכים מוצבים לתוך המשתנים x,y,z.

יכול להיות שכל מה שאמרתי פה זה שטויות, אבל פשוט זה מה שנראה לי נכון...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   12:46   14.12.07   
אל הפורום  
  5. האמת אני גם חשבתי על זה אבל בצורה שונה קצת :|  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   13:09   14.12.07   
אל הפורום  
  7. לא נכון  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   13:08   14.12.07   
אל הפורום  
  6. אם אף אחד לא יענה נכונה עד הערב אני אפרסם את הפיתרון  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
עידן_הכלי

   17:11   14.12.07   
אל הפורום  
  8. התשובה היא כמו ש Metor אמר אבל רק עם שינוי קל  
בתגובה להודעה מספר 0
 
   משתנה שעוד לא אותחל הוא לאו דווקא 0, יותר נכון שכמעט ואין סיכוי שהוא יהיה 0.

לכן אפשר להניח ש Y יהיה 1 אך לא ניתן להגיד מה יהיה ערכם של Z ו-Y.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   17:37   14.12.07   
אל הפורום  
  9. התשובה נכונה אבל לא מהסיבות הנכונות  
בתגובה להודעה מספר 8
 
   זה בגלל שהאתחול ב MIL (Member initialization list) מתבצע לפי הסדר שבו המשתנים הוגדרו בקובץ H ולא לפי הסדר שרשום באתחול בctor

זה דבר שמפיל הרבה אנשים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
עידן_הכלי

   19:37   14.12.07   
אל הפורום  
  10. טוב לדעת :-)  
בתגובה להודעה מספר 9
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net