» נושאי לימוד
» נושאי לימוד
יום חמישי 2 במאי 2024
שימוש ב-Const
דף ראשי  הגן על עצמך  שימוש ב-Const גרסה להדפסה

הגדרת משתנה או פרמטר כקבוע הוא כלי חזק מאין כמוהו למניעת באגים בזמן קומפילציה לפני שמגיעים לזמן הריצה. למה הכוונה?

בואו ניקח דוגמא, השגרה הבאה מקבלת את מספר התאים במערך שעליה לסכום (פרמטר in)ומחזירה את סכומם (ערך החזר):

 

int SummarizeCells(int NumOfCells)
{
    int SumOfCells = 0;
    for (int i = 0; i <= NumOfCells; i++)
    {
        NumOfCells += m_NumArr[i];
       
    }
    return SumOfCells;
}

 

שימו לב לבאג הקטן של התוכניתן שלנו: במקום לסכום אל תוך המשתנה SumOfCells, התבצעה הסכימה אל תוך NumOfCells והתוכנית תשתגע מאוד מהר...

אז בואו קודם כל נניח שבאגים כאלו קורים לכולנו ואלה החיים.

אז מה עושים?

מגדירים את השגרה כך:

int SummarizeCells(int const NumOfCells)
                        

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

 

אותו עיקרון עובד בשגרות const במחלקות:

double CEmployee::GetAnnualSalary() const
                                                 

ה-const בסוף השגרה מציין שהשגרה איננה משנה כל data member אלא רק מחשבת/מאחזרת ערך. אם תכננו נכון את השגרות שלנו והשגרה GetAnnualSalary אכן עושה רק את מה שהיא מתיימרת לעשות (מחזירה את המשכורת השנתית של העובד), אין שום סיבה שישתנה נתון כלשהו של העובד בתוכה.
 15-03-04 / 19:01  עודכן ,  13-03-04 / 00:22  נוצר ע"י ישי קנובל בתאריך 
 הגדרת משתנים - הקודםהבא - שימוש במוני לולאות 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2