פורסם 2007 במאי 2118 שנים אני בונה פרוייקט גדול עם 30 מחלקות בערך וכל מיני ירושות בינהן , ואין לי מושג איך למנוע multiple inclusion של קובצי header.במיוחד נתקלתי בבעייה עם מחלקה A שמחזיקה פוינטר למחלקה B ו-B צריכה להפעיל מתודה של A .הכללתי את ה-HEADER של B ב-A אבל בשביל ש-B תוכל להפעיל את המתודה של A אני צריך להכליל את ה-HEADER של A ב-B אבל זה ייצור לי לולאת הכללות או משהו כזה.איך מונעים את זה ?תודה לעוזרים.
פורסם 2007 במאי 2118 שנים קודם כל, כל HEADER אתה צריך "לעטוף" ב-#ifndef _CLASSNAME_H_#define _CLASSNAME_H_#endifשים לב שאתה לא רושם את הקוד בתוך קובץ הH, אלא בקובץ נפרד(קובץ CPPעושה INCLUDE לקובץ הH).ואתה יכול להצהיר על CLASS לפני שאתה מגדיר אותו:class ClassName;
פורסם 2007 במאי 2118 שנים מחבר דבר ראשון תודהשנית, בקובץ הHEADER שלי אני מכליל עוד כמה HEADER-ים איפה אני שם אותם ? אחדי ה- define _CLASSNAME_H# ?
פורסם 2007 במאי 2218 שנים לטכניקה של מניעת #include חוזר ע"י ה-preprocessor קוראים "include guards". אין שום פרוייקט רציני ב-C או ב-C++ שלא מחייב אותם. שים אותם בכל קובץ H שאתה יוצר, גם אם לא נראה לך שאתה צריך.זה מצביע לעבר אחד החורים ב-C ו-C++: השפות הללו מסתמכות במידה רבה מאוד על #include-ים טקסטואלים של קבצים רבים בזמן קומפילציה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.