פורסם 2012 בפברואר 2913 שנים מה ההבדל בין העברת פרמטרים כזאת:ב- 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©
פורסם 2012 בפברואר 2913 שנים מחבר 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
פורסם 2012 בפברואר 2913 שנים ערוך את ההודעה שוב.אל תעתיק קוד ממקום למקום.שים את הקוד בתוך טג קוד.עדיף שתעבור ל"תצוגת קודים" (הכפתור השמאלי ביותר, זה שיש בו A אדומה).ועשה "תצוגה מקדימה" לפני שאתה שולח את ההודעה.
פורסם 2012 בפברואר 2913 שנים בסדר.בשני "קטעי" הקוד הפונקציה h היא זהה, והיא תעשה אותו דבר. ההבדל ביניהם הוא איך ש-c1 נוצר, ואיפה הוא קיים.במקרה הראשון, c1 נוצר על גבי ה-heap (שהוא הזכרון שיש לתכנית עבור דברים שהוקצו באופן דינמי) והמשתנה בעצם רק מחזיק מצביע אליו. המצביע הוא זה שמועבר ל-h. האובייקט לא יימחק באופן אוטומטי - בשביל לעשות זאת צריך לקרוא במפורש לאופרטור delete.במקרה השני, c1 הוא אובייקט שנוצר על גבי המחסנית של הפונקציה main. כשפונקציית ה-main תסתיים, האובייקט יימחק באופן אוטומטי.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.