ABA


"בעייה בספסיפיקציה עבור טמפלט C++..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10700 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10700
cfirzzz לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
5060 הודעות, 2 פידבק
   17:45   18.05.12   
אל הפורום  
  בעייה בספסיפיקציה עבור טמפלט C++...  
 
   יש לנו מחלקה בשם X שממנה יורשות מחלקות נוספות
כל המחלקות היורשות ממנה מוגדרות כטמפלט,
בכל אחת מהמחלקות אנחנו מגדירים משתנה מסוג static const T כאשר T הוא הערך של הטמפלט.
כמה שאלות :
1. אנחנו צריכים לאתחל את המשתנה הזה לסוגים שונים של T (int,long) וכו...
ז"א שאני צריך לעשות ספסיפיקציה עבור המחלקה, עם סוג המשתנה שבו אני רוצה לשנות את הערך, אבל האם זה אומר שעליי לכתוב את כל פונקיות המחלקה מחדש ?! יש דרך לעשות זאת בצורה חכמה יותר ?
2. כרגע נגיד ושיכפלתי את הפונקציות כך שזה ירוץ (עם הספציפיקציה)
באחת הפונקציות, הפונצ' מוגדרת כך שהיא מחזירה *X (פוינטר למחלקה ממנה ירשנו)
הכל עובד בסדר גמור ללא הספיציפיקציה, אך כאשר אני כותב את הספיציפיקציה אני מקבל שגיאה שאין אפשרות להמיר מ X* לפוינטר של המחלקה שלי עם הספציפיקציה. (עם הטמפלט זה עובד..)

תודה !


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  השאלה שלך לא כל כך ברורה.. TheKid 18.05.12 21:45 1
     הקוד המלא ארוך מדיי cfirzzz 19.05.12 14:00 2

       
TheKid לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.10.07
17978 הודעות, 1 פידבק
   21:45   18.05.12   
אל הפורום  
  1. השאלה שלך לא כל כך ברורה..  
בתגובה להודעה מספר 0
 
   יש מצב אתה מעלה את הקוד?

למשל לא ברור: המחלקות היורשות מוגדרות כטמפלט ובכל מחלקה יורשת מכילה את עצמה? כטמפלט?
לא כל כך ברור..

ושתי השאלות שלך בכלל לא ברורות לי.

למשל:
בשאלה הראשונה:
כל הקטע בטמפלט הוא שאין צורך שתכתוב את כל המחלקות לכל ספציפקציה אז אני לא מבין את השאלה הראשונה כל כך..
בשאלה השנייה:
מה זה הטיפוס X?


או בקיצור שים את הקוד או משהו...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
cfirzzz לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
5060 הודעות, 2 פידבק
   14:00   19.05.12   
אל הפורום  
  2. הקוד המלא ארוך מדיי  
בתגובה להודעה מספר 1
 
   הוא 500 שורות
ננסה להסביר את זה ככה :

template<class T>
class Point {
T x
T y
}

class shape {
virtual func1...
virtual func2...
virtual func3...
}

template <class R,class T=Point<R>>
class Circle : public Shape {
static const R var1;
func1
func2
func3
}


עכשיו העניין הוא שאני צריך לאתחל את var1 עבור סוגים שונים
כלומר, עבור INT הוא אמור לקבל 1, עבור DOUBLE הוא אמור לקבל 0.1 וכו'...
האם יש דרך לאתחל את המשתנה הזה בספסיפיקציה , שהוא STATIC CONST, מבלי לכתוב את כל הפונקציות מחדש עבור אותו סוג ערך?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net