c++

H R U

New member
c++

אם מישהו יוכל בבקשה לתקן את ההבעיית הלינקין, אני אודה לו מאוד. עד שפתרתי את בעיית הקומפילציה, פתאום זה נפל עליי. תודה.
 
אין לי כוח לקמפל ולהריץ אבל :

שים לב למה שאתה עושה stackArray.h .
include <iostream.h> #ifndef STACKARRAY #define STACKARRAY​
לפי מה שכתבת אתה בכל מקרה כולל את ISOTREAM, אז למה ה IFNDEF? את ה INCLUDE של ISOTREAM תעשה אחרי זה.....
 

J u s t y

New member
לא ברור

1. קימפלתי ובניתי (ב- VC6) ולא נתקלתי בבעיה, אז רצוי שתפרט מה היתה הבעיה אצלך. 2. יש לי השגות על מבנה קובץ ה- H, אבל מיקום ה- ifndef אינו מהווה בעיה, אמנם רצוי ויפה לשים אותו בשורה הראשונה של הקובץ אבל אם מכלילים קובץ אחר (שכנראה גם הוא נכתב עם ifndef) לא צריכה להיות בעיה. תפקידו של ה- ifndef הוא למנוע הכרזה כפולה על ה- class ולא למנוע הכללה כפולה של קובץ H אחר. 3. סתם מסקרנות, למה iostream.h ולא iostream? זה יותר נכון ב- C++ (אבל זאת לא הסיבה לשגיאות).
 

H R U

New member
זה לא עזר, זה מתקמפל אבל לא עובר..

בניה. יש לי עוד תרגיל, אחרון.אני יושב עליו כבר איזה 5 שעות ולא מצליח לתקן את השגיאה. אם לא יהיה לכם קשה לבדוק את זה ולומר לי איך לתקן, אני אשמח מאוד. בתרגיל השני, הקומפיילר והלינק כותבים: 'listItem' : 'class' type redefinition
 

H R U

New member
בקשר לתרגיל ראשון, אני בניתי אותו..

מחדש בפרוייקט אחר, וזה כן נבנה והכל תקין, תודה רבה.
 

annefan

New member
code guards

תסתכל בהערות שלי:
************* listItem.h **************** #include <iostream.h> //#ifndef STACKLIST // <-- Why remark?? Why STACKLIST? Should be LISTITEM //#define STACKLIST // <-- Why remark?? Why STACKLIST? Should be LISTITEM ... //#endif <-- Why remark?? ************* stackList.h *************************** #include <iostream.h> #include "listItem.h" //#ifndef STACKLIST // <-- Why remark?? //#define STACKLIST // <-- Why remark?? ... //#endif // <-- Why remark?? **************** stackList.cpp ************************ #include "stackList.h" // <-- include "listItem.h" first time #include <STDLIB.H> #include "listItem.h" // <-- include "listItem.h" second time - REDEFINITON!!! #include <IOSTREAM.H> ...​
 

J u s t y

New member
זה ממחיש את סעיף 2 שלי ממקודם

שים לב, יש לך include של listItem.h גם ב- stackList.h וגם ב- stackList.cpp ומשום מה החלטת לשים את ה- ifndef בהערה. שחרר אותם מההערה וזה יספיק. (אם היית מקיף את כל stackList.h ב- ifndef, ואפילו רק אותו, לא היית מקבל שגיאה)
 
למעלה