עזרה ב- C++

לושיי

New member
עזרה ב- C++

מה אני צריך לרשום ב- pre-conditions and post-conditions ? תודה רבה
 

tami120

New member
אתה מתכוון לאופרטורים?

כי אם כן ההבדל בין postfix ל prefix הוא ש prefix מקבל void ו postfix מקבל int וזה כדי להבדיל בינהם למשל:
operator++(void); //prefix operator operator++(int); //postfix​
 

לושיי

New member
לא לזה התכוון המשורר, אלא לתיעוד

של פונקציה מסויימת לגבי קלט ופלט בפונקציה. מה צריך לרשום בדיוק? האם צריך לרשום ב- Pre איזה קלט נכנס? והאם צריך לרשום ב- Post איזה פלט יוצא? וכיצד רושמים את זה בדיוק?
 

Zack DA

New member
בעיקרון, בד"כ לא מתעדים ככה....

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

eyalbd

New member
כתוב קוד שמתעד את עצמו

ע"י הוספת בדיקות של assert עבור תנאי ההתחלה ותנאי סיום. אחד החסרונות של הערות הוא שצריך לתחזק אותן במקביל לקוד ובהרבה מקרים יש סחיפה. משנים את הקוד אבל שוכחים לשנות הערות. דוגמא לתיעוד ע"י assert
bool rename_file(const char* old_name, const char* new_name) { // put asserts for NULL pointers and others // // .... // Check precondition // assert(file_exist(old_name)); assert( ! file_exist(new_name) ); // ... actual code for renaming files // Check post conditions // assert( ! file_exist(old_name) ); assert( file_exist(new_name) ); return result; }​
 
למעלה