שאלה של צעיר מתחיל...

ASPuppy

New member
שאלה של צעיר מתחיל...

שלום לכולם, אני מנסה ללמוד C++ ולא ממש הבנתי מה זה Constructor ו- distructor אם ניתן להסביר מה זה אומר בכמה מילים, אודה לכם מאד. תודה.
 

oketz1

New member
קונסטרקטור כשמו כן הוא .. בנאי

כל אוביקט נוצר על ידי קונסטרקטור. קונסטרקטור נועד למעשה לאתחל המשתנים של האוביקט שלך בערך כלשהו שאינו זבל (שיפור של שפת סי) כמו כן , ניתן לבצע כמעט כל מה שמתחשק לך שייקרה במהלך בנייתו של אוביקט חדש. דיקונסטרקטור, ובעברית "הורס" מטרתו להרוס את האוביקט שבנית ולשחרר את הזיכרון שלו.
 

DarkSwell

New member
תשובה..

Constructor בנאי, בנאי זו הפונקציה שמתבצעת כאשר האובייקט נוצר, דוגמא ClassTest x כאשר x הוגדר יופעל הבנאי ברירת מחדל של מחלקת ClassTest וכמובן ששמו של הבנאי הוא כשם המחלקה ()public ClassTest. בנאי ברירת מחדל, כלומר שאינו מקבל ארגומנטים. ניתן להוסיף גם בנאי שמקבל ארגומנטים לצורך איתחול המשתנים של המחלקה. בעיקרון בבנאי ניתן לכתוב כל פקודה כבכל פונקציה אחרת. דוגמא לבנאי שמקבל ארגומנטים(ClassTest x("user", 1 בדוגמא זו יופעל בנאי שמקבל ארגומנטים, ארגומנט ראשון מצביע מטיפוס char ארגומנט שני מספר שלם. יוגדר כך (public ClassTest(char *s, int n וכמובן גוף הפונקציה. בנאי אינו מחזיר ערך. ניתן ליצור כמה בנאים שצריך בתנאי שהם יהיו שונים בארגומנטים שהם מקבלים, אם בכלל. לגבי Destructor הורס, הוא ניקרא כאשר האוביקט מוסר מהזיכרון, בדרך כלל מבצעים בו פעולות כגון שחרור זיכרון שהוקצע דינמית, או סגירת קבצים, חיבורי רשת, שהיו בשימוש המחלקה. הורס מוגדדר כך ()public ~ClassTest אינו מקבל ארגומנטים. ביי.
 

guysl

New member
הבהרה נוספת

רצוי לציין, שאינך קורא בצורה מפורשת, בקוד, לפונקציות אלה (קונסטרקטור ודיסטרקטור), אלא רק מממש אותן בהתאם לצורך. בעת הגדרת אובייקט, באופן חד פעמי לגבי אובייקט זה, הקונסטרקטור המתאים (בהתאם לפרמטרים) נקרא אוטומטית, וכאשר אובייקט יוצא מתחום-ההכרה שלו (או "מוצא" באמצעות delete) נקראת אוטומטית פונקציית ההריסה. עוד חידוד קל: ה-constructor מופעל על אובייקט קיים, ז"א קודם האובייקט מוקצה בזיכרון ונבנים האלמנטים הפנימיים שלו, ורק אז מופעלת פונקציה זו בצורה אוטומטית.
 
למעלה