עG פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 שלום,כתבתי תוכנה שתפקידה לסדר אירועים ביומן(לא משנה הפרטים) יש שני סוגי תאריך שניתן להכניס ליומן האירועים המוגדרים בקלאסים שונים.הבעיה שסוג התאריך נקבע כפרמטר לתוכנית ב-(argv).כשאני צריכה לשבץ תאריך איך אני אדע באיזה קונסטרקטור להשתמש??האי ככה אי אפשר לעשות::if(argv[1]==-regular)תודה רבה על העזרה.... קישור לתוכן שתף באתרים אחרים More sharing options...
Boomerang פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 השאלה היא איך אפשר ליצור אובייקטים מקלאסים שונים כתלות ב- string מסוים?אם לשני הקלאסים יש הורה משותף אפשר לעשות משהו כזה -CParent *pObj = NULLif (strcmp(argv[1], "type1")==0)pObj=new Child1()else if (strcmp(argv[1], "type2")==0)pObj=new Child2() קישור לתוכן שתף באתרים אחרים More sharing options...
עG פורסם 2005 ביוני 22 מחבר Share פורסם 2005 ביוני 22 ככה בדיוק עשיתי..הבעיה שהוא טוען שהוא לא מכיר את argv קישור לתוכן שתף באתרים אחרים More sharing options...
Holy פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 main(int argc, char **argv) קישור לתוכן שתף באתרים אחרים More sharing options...
Ghosthunter פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 אם הם מוצגים בצורה שונה, למשל אחד קצת (3.9.88) ואחד ארוך(3 ספטמבר 88) אז את יכולה גם לבדוק לפי הARGC שסופר כמה ארגומנטים יש לך.ואת צריכה לרשום :int main(int argc, char *argv[]) קישור לתוכן שתף באתרים אחרים More sharing options...
עG פורסם 2005 ביוני 22 מחבר Share פורסם 2005 ביוני 22 אבל הכל נעשה במחלקה כלשהי שאחראית על האירועים איך המיין יכולה לעביר לה מידע על סוג ה-argv? קישור לתוכן שתף באתרים אחרים More sharing options...
Holy פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 תעביר לה את זה ל-constructor ושהיא תשמור את זה במשתנה פרטי. קישור לתוכן שתף באתרים אחרים More sharing options...
Boomerang פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 את יכולה לחפש קצת על design pattern שנקרא factory. זה נשמע לי כמו מה שאת מחפשת. קישור לתוכן שתף באתרים אחרים More sharing options...
LinkTree פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 הדרך הטובה לפתור כזה מצב.מבחינת DESIGN נכון אסור ליצור מצב שהאוביקטים השונים מודעים אחד לשני והרבה יותר טוב שגם ה MAIN לא יהיה מודע לסוגי האוביקטים השונים.במצב כזה בדרך הכי טוב לעבוד ככה.כל ה CLASSים ממשים ממשק כללי (וכמובן יורשים מאב כלשהו שאינו ממומש.ישנו CLASS אחד (FACTORY) שתפקידו להחליט איזה CLASS הוא אמור לאתחל לפי מבנה נתונים שיושב אצלו ואיזה שהוא מפתח (למשל ה STRING שמתקבל ב Arc של התוכנית - כמו אצלך)על מנת לאפשר גמישות מירבית ולמנוע מצב שבו אם רוצים להוסיף או לעדכן CLASS מסויים צריך לשנות קבצים קיימים כל CLASS דואג (על ידי בלוק סטטי) לרשום את עצמו במבנה הנתונים של ה FACTORY.וה MAIN פשוט מפיעל את ה FACTORY כשהו שולח את הארגומנט - וה FACTORY מחזיר לו את האוביקט המתאים (לפוינטר של CLASS האב)בצורה כזו גם אם בעתיד יש צורך להוסיף CLASS חדש יש צורך רק לכתוב אותו ולקמפל - בלי לעדכן שום קובץ אחר. קישור לתוכן שתף באתרים אחרים More sharing options...
עG פורסם 2005 ביוני 22 מחבר Share פורסם 2005 ביוני 22 זאת הבעיה שאסור לי להוסיף שדות פרטיים חוץ מכאלה שנתונים לי כבר... ואין שם שדה כזה.. קישור לתוכן שתף באתרים אחרים More sharing options...
Holy פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 גלובלי? קישור לתוכן שתף באתרים אחרים More sharing options...
עG פורסם 2005 ביוני 22 מחבר Share פורסם 2005 ביוני 22 מה גלובלי המשתנה? לא.... ממש לא אמרתי שאני לא יכולה להוסיף שדות לקלאס. קישור לתוכן שתף באתרים אחרים More sharing options...
LinkTree פורסם 2005 ביוני 22 Share פורסם 2005 ביוני 22 FACTORY זה הכל קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.