פורסם 2005 במרץ 1620 שנים שלום לכולם,מישהו יכול לעזור לי להתגבר על כאב ראש גדול מאד ולהסביר לי מה מותר ומה אסור בתור ארגומנט ל template.פוינטרים, קבועים,רפרנסים, מצביעים לפונקציה וכל מה שאתם מצליחים לחשוב עליו.
פורסם 2005 במרץ 1620 שנים בעצם כל דבר שיכול להחשב כ- data type (כולל class כמובן) אפשר לשלוח בתור ארגומנט ל- template.עריכה: כמובן וגם ערכים (parameterized template)... בעצם אפשר לשלוח הכל, כל מה שהקומפיילר עושה זה copy&paste, ואתה צריך לדאוג שהשימוש ב- template parameters יהיה חוקי (כמובן שהקומפיילר יצעק לך אם תהיה בעיה, אבל אתה כנראה לא תבין מזה כלום אם יש לך template מסובך, יש אפילו כלים ספציפיים לפירוש השגיאות האלה..).
פורסם 2005 במרץ 1820 שנים Template אוכל הכל,אבל מציב כמה תנאים.אם זה class שכתבת, ויש בtemplate (פונקציה במקרה שלנו) שימוש באופרטורים מסוימים כמו + או ==, חייבים להיות מוגדרים בקלאס שלך האופרטורים המתאימיםאחרת הtemplate לא יעבוד.
פורסם 2005 במרץ 2120 שנים Template אוכל הכל,אבל מציב כמה תנאים.אם זה class שכתבת, ויש בtemplate (פונקציה במקרה שלנו) שימוש באופרטורים מסוימים כמו + או ==, חייבים להיות מוגדרים בקלאס שלך האופרטורים המתאימיםאחרת הtemplate לא יעבוד.האמת לא הבנתי.. מה ספציפי פה דווקא לתבניות שלא תקף למחלקה רגילה?אגב אני שונא תבניות, בעיקר את הקטע שצריך לשים את כל המימוש ב header (יש כל מיני workarounds מגעילים לזה).
פורסם 2005 במרץ 2120 שנים זה בידיוק אותו דבר, רק שאם אתה שולח לTEMPLATE מחלקה מסויימת, אתה צריך לדאוג שכל מה שאתה משתמש בו בתוך היישום של הפונ שלך מוגדר. כלומר, אם אתה משתמש שם בחיבור(+), אתה צריך לדאוג שהחיבור יהייה מוגדר גם במחלקות, שאתה "שולח".
פורסם 2005 במרץ 2120 שנים אה נו כמובן.. בכל מקרה, templates = איכסה ביכסה (מבחינת תכנות, מבחינת שימוש - תודה לאל שזה קיים)
פורסם 2005 במרץ 2220 שנים למה? זה נורא נחמד וקל לשימוש, במקום לעשות העמסה ענקית, עושים TEMPLATE אחד קטן. הבעיה מתחילה רק כאשר משתמשים בסוגי משתנים לא סטנדרטיים(INT CHAR FLOAT וכו, לא CHAR*).
פורסם 2005 במרץ 2220 שנים הבלגן האמיתי זה לכתוב templates, לא להשתמש בהם.אה כן, וגם להבין שגיאות קומפילציה שיש לך הגדרה של פונקציה שתופסת 5 שורות.
פורסם 2005 במרץ 2320 שנים תיצור map בין string ל- pair של string ועוד משהו, ותנסה לעשות set ולהעביר פרמטר לא מתאים.שעות של הנאה...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.