
08-10-2008, 15:40
|
 |
|
|
חבר מתאריך: 08.10.02
הודעות: 827
|
|
בתגובה להודעה מספר 1 שנכתבה על ידי fraps0 שמתחילה ב "מזה משנה אם עושים כותבים את תוכן הפונקציה ב-header או בקובץ CPP?"
מפרידים את יישום הפונקציה לקובץ
source (.cpp, .c, ...)
ואת הגדרת הפונקציה לקובץ
header (.hpp, .h)
נגיד והפרוקיט שלך מורכב מכמה קבצים, הקומפילר יכול לקמפל כל חלק בנפרד ונגיד בקובץ אחד יש לך
add.c:
קוד:
int add(int a, int b) { return a + b; }
עכשיו אתה משתמש בפונקציה בקובץ אחר אז אתה מצהיר שיש כזאת פונקציה ואז משתמש בה
main.c:
קוד:
int add(int, int);
int main() {
printf("%d", add(2, 3));
}
עכשיו נגיד ושנית את הפונקציה בקובץ הראשון
add.c:
קוד:
int add(int a, int b, int c) { return i + b + c; }
הקובץ השני עדיין יתקמפל כי הצהרת על הפונקציה add
ותיווצר לך שגיאה כתקרא לפונקציה.
אתה יכול לתקן את הבעיה על ידי תיקון כל ההצהרות הישנות של הפונקציה להצהרה החדשה
main.c:
קוד:
int add(int, int, int);
int main() {
printf("%d", add(2, 3, 6));
}
עכשיו לך תמצא את כל המקומות בהם השתמשת והצהרת על הפונקציה ....
לשים את הגדרת הפונקציה ב header פותר לך את הבעיה הזאת כי הפונקציה מוצהרת במקום אחד בכל הפרויקט, לא משנה כמה גדול הוא.
ועוד משהו שאסור בשפה לרשום שתי מימושים לפונקציה באותו פרויקט, למשל אסור משהו כזה
main.c:
קוד:
int add(int a, int b) { a + b; }
int add(int a, int b) { a + b; }
int main() {
printf("%d", add(2, 3));
}
אך מותר לחזור על הצהרות שהם אותו דבר לדוגמא
main.c:
קוד:
int add(int a, int b) { a + b; }
int add(int, int);
int add(int, int);
int main() {
printf("%d", add(2, 3));
}
מה שאומר שאתה לא יכול לצרף את המימוש כמה פעמים (מה שיכול לקרות בלי שתכננת) כי זה יצא שממשת כמה פעמים אך את קובץ ההצהרות אתה יכול לצרף כמה פעמים.
_____________________________________
Error: Keyboard not found
Press F1 to continue
נערך לאחרונה ע"י maind בתאריך 08-10-2008 בשעה 15:44.
|