eyal the one
New member
c++ definition declaration
הי, כידוע declaration משמש ל type checking ונכלל בקובץ בו עושים שימוש בפונקציה או במשתנה , בתהליך משווה ה compiler את הקריאה למשתנה או לפונקציה מול ההצהרה. לעומת זאת definition משמש את הלינקר לקישור בין ההצהרה למקום האמיתי adress בו הפונקציה מוגדרת. מסיבה זו אין להגדיר את הפונקציה ביותר מ cpp אחד ואסור להגדיר אותה ב header שיכלל לאחר מכן במספר cpp. כי אז תהיה הגדרה כפולה, הצהרות, שאינן מהוות את הכתובת אלא רק משמשות ל type checking ניתן להגדיר בכל קובץ. אם כך:: למה לעזאזל ניתן להגדיא מחלקה ביותר ממקום אחד, איך הlinker מתמודד עם זה כידוע כאשר מכלילים ב header משהו כמו:
הי, כידוע declaration משמש ל type checking ונכלל בקובץ בו עושים שימוש בפונקציה או במשתנה , בתהליך משווה ה compiler את הקריאה למשתנה או לפונקציה מול ההצהרה. לעומת זאת definition משמש את הלינקר לקישור בין ההצהרה למקום האמיתי adress בו הפונקציה מוגדרת. מסיבה זו אין להגדיר את הפונקציה ביותר מ cpp אחד ואסור להגדיר אותה ב header שיכלל לאחר מכן במספר cpp. כי אז תהיה הגדרה כפולה, הצהרות, שאינן מהוות את הכתובת אלא רק משמשות ל type checking ניתן להגדיר בכל קובץ. אם כך:: למה לעזאזל ניתן להגדיא מחלקה ביותר ממקום אחד, איך הlinker מתמודד עם זה כידוע כאשר מכלילים ב header משהו כמו:
class a { int i; int x; public: void func(); }
בעצם שמנו שם declaration + definition. אז אם יש שם definition שמקושר למעשה לכתובת ממשית ולא סתם הצהרה, איך זה שניתן להכליל את זה בהרבה cpp, בלי לחשוש מהגדרות כפולות אם היינו עושים אותו דבר לפונקציה או משתנה היינו מקבלים שגיאה מהקומפילר?? תודה מראש אייל