guy81 פורסם 2012 בפברואר 29 Share פורסם 2012 בפברואר 29 מה ההבדל בין העברת פרמטרים כזאת:ב- main:[size=78%]בפונקציה h:[/size][size=78%]void h(C *c )[/size][size=78%]לבין:[/size][size=78%]ב- main:[/size]C c1(); h(&c)[size=10px]בפונקציה h:[/size][size=10px]void h(C *c )[/size][size=1](מלבד העניין שהראשון הוקצה ב- heap והשני במחסנית, מה ההבדל מבחינת כל מיני פקודות והשמות שנעשה בפונקציה h על c המתקבל כפרמט)[/size]C *c1= new C(); h© קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בפברואר 29 Share פורסם 2012 בפברואר 29 מה?תתקן את ההודעה שלך, כרגע היא בלתי קריאה. קישור לתוכן שתף באתרים אחרים More sharing options...
guy81 פורסם 2012 בפברואר 29 מחבר Share פורסם 2012 בפברואר 29 1.ב- mainC * c1= new C();h(c1)כאשר החתימה של h היא כזאתvoid h (*C c)2.ב-mainC c1;h(&c1)בחתמיה של h:void h (*C c)מה ההבדל בין שני הדברים כאשר נעשה פעולות על c ב-1 ועל c ב-2 קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בפברואר 29 Share פורסם 2012 בפברואר 29 ערוך את ההודעה שוב.אל תעתיק קוד ממקום למקום.שים את הקוד בתוך טג קוד.עדיף שתעבור ל"תצוגת קודים" (הכפתור השמאלי ביותר, זה שיש בו A אדומה).ועשה "תצוגה מקדימה" לפני שאתה שולח את ההודעה. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בפברואר 29 Share פורסם 2012 בפברואר 29 בסדר.בשני "קטעי" הקוד הפונקציה h היא זהה, והיא תעשה אותו דבר. ההבדל ביניהם הוא איך ש-c1 נוצר, ואיפה הוא קיים.במקרה הראשון, c1 נוצר על גבי ה-heap (שהוא הזכרון שיש לתכנית עבור דברים שהוקצו באופן דינמי) והמשתנה בעצם רק מחזיק מצביע אליו. המצביע הוא זה שמועבר ל-h. האובייקט לא יימחק באופן אוטומטי - בשביל לעשות זאת צריך לקרוא במפורש לאופרטור delete.במקרה השני, c1 הוא אובייקט שנוצר על גבי המחסנית של הפונקציה main. כשפונקציית ה-main תסתיים, האובייקט יימחק באופן אוטומטי. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.