ABA


"templetes בC++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15873 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15873
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:15   05.05.10   
אל הפורום  
  templetes בC++  
 
   C++ חדשה לי, וניסתי לעשות מערך דינאמי גנרי.
כך:
קובץ הHEADER:

#pragma once

template <class T>
class Array {
protected:
T *storage;
int storageCount;
public:
Array(int size);
~Array();
T &operator[](int index);
};


קובץ המימוש:

#include "Array.h"
template <class T>
Array::Array(int size)
{
storage=new T[size];
storageCount=size;
}
Array::~Array
{
delete []storage;
}
template <class T>
T &Array::operator [](int index)
{
if(index>=storageCount)
{
T * newstorage;
newstorage=newstorage[storageCount+1];
for(int i=0;i<storageCount;i++)
{
newstorage[i]=storage[i];
}
delete []storage;
storage=newstorage;
}
return storage[index];
}

איפה הבעיה פה? יש לי 6 ארורים..
הראשון אומר:
Error 1 error C2955: 'Array' : use of class template requires template argument list
כל השאר אני מניח נובעים מימנו..


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  וואי יש המון המון FUCK UPS עם טמפלטס... פאביו ג'וניור 05.05.10 21:32 1
     אם אני שם בהכרזה זה עושה לי אותה INLINE לא? ronen333  05.05.10 21:34 3
         חחח זה פשוט קומפיילרים גרועים פאביו ג'וניור 05.05.10 21:38 5
  אם אני זוכר נכון VeNom  05.05.10 21:34 2
     אנסה, תודה לכם :) ronen333  05.05.10 21:35 4
         פתר. תודה :) ronen333  05.05.10 21:40 6
     להיפך-הכל ממומש בקובץ הheader(או שבעצם זה אותו דבר :)) the crusher 11.05.10 19:05 29
  שאלה ronen333  06.05.10 13:49 7
     בעקרון זה אמור להיות קובץ VeNom  06.05.10 13:58 8
         אווקי, תודה.. שאלה ronen333  06.05.10 14:13 9
             עשיתי פשוט new ronen333  06.05.10 17:29 10
                 תפריד בין הדברים - או שההאינסטנס סטטי (ולכן יש לו ldan192  06.05.10 21:58 11
                     עשיתי הפרדה.. ronen333  06.05.10 22:35 14
                         רגע, רק שאני אבין אותך, זה מוגדר סטטית בתוך מתודה ldan192  06.05.10 22:58 15
                             חס וחלילה גלובלית ronen333  06.05.10 23:15 16
                                 מה שעשית אז לא נכון. תחשוב שכל קלאס הוא ldan192  06.05.10 23:25 17
                                     אהה.. מצטער שלא הבנת אותי :| ronen333  07.05.10 12:23 18
                                         קודם כל, לא יודע אם ידעת אבל כל משתנה סטטי מאותחל ל-0 ldan192  07.05.10 14:03 19
                                             מכתב ronen333  07.05.10 14:07 20
                                                 הבנתי. אתה לא מנסה גם לגשת מה-Main? אם לא, אז הגיוני ldan192  07.05.10 14:26 21
                                                     לא הבנתי.. איפה אתה רוצה? ronen333  07.05.10 14:55 22
                                                         בגדול כן. כמו שאמרתי, לך תדע מה סדר הקדימויות (למרות ldan192  08.05.10 13:42 25
                                                             מכתב ronen333  09.05.10 11:44 27
                                                                 אני עדיין מחכה.. מישהו? X= ronen333  11.05.10 10:23 28
                                                                     סורי, שכחתי ממך. לקראת הסופ''ש יהיה לי יותר זמן לעבור על זה שוב ldan192  12.05.10 00:18 30
                                                                 הקישור נפל... ldan192  13.05.10 21:50 31
                                                                     הנה ronen333  14.05.10 09:08 32
                                                                         טוב, יש האמת היא המון בעיות, החל משימוש בהצהרות ldan192  14.05.10 13:27 33
                                                                             אווקי, תודה עידן :) ronen333  14.05.10 14:22 34
         שזה בול מה שאמרתי לו :) פאביו ג'וניור 07.05.10 22:52 23
             זה לא רק קוד שונה, לכל T הוא יוצר הגדרת מחלקה שונה ldan192  08.05.10 13:41 24
                 כן זה מה שהתכוונתי שאמרתי קוד שונה... פאביו ג'וניור 08.05.10 18:30 26
  אגב, הקונבנציה בהמון מקומות מבחינת מבנה קבצים Sn00py  06.05.10 22:02 12
     אהה יפה.. תודה :) ronen333  06.05.10 22:31 13

       
פאביו ג'וניור

   21:32   05.05.10   
אל הפורום  
  1. וואי יש המון המון FUCK UPS עם טמפלטס...  
בתגובה להודעה מספר 0
 
   אם אני זוכר נכון אתה חייב לשים את המימוש בהכרזה... יעני שם את המימוש בHEADER... כן אני יודע שזה ערבי אבל יש המון המון FUCKUPS מוזרים עם טמפלטים בVS (בC++..)
אולי זה לא אחד מהFUCKUPS אבל תנסה ואם זה יעבוד אז דבש לך

ד"א במימוש של הD'TOR שחכת סוגריים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:34   05.05.10   
אל הפורום  
  3. אם אני שם בהכרזה זה עושה לי אותה INLINE לא?  
בתגובה להודעה מספר 1
 
   X=
אני מתחיל לתעב C++.

C# לשלטון!


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

   21:38   05.05.10   
אל הפורום  
  5. חחח זה פשוט קומפיילרים גרועים  
בתגובה להודעה מספר 3
 
   יש המון פיצ'רים בטמפלטס שפשוט לא ממומשות בקומפיילרים כי קשה להם לעשות את זה... טמפלטס זה כאב ראש לקומפיילרים חחח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   21:34   05.05.10   
אל הפורום  
  2. אם אני זוכר נכון  
בתגובה להודעה מספר 0
 
   אז שאתה עושה טמפלייט אין כזה דבר קובץ HEADER..הכל ממומש ב CPP..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:35   05.05.10   
אל הפורום  
  4. אנסה, תודה לכם :)  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:40   05.05.10   
אל הפורום  
  6. פתר. תודה :)  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
the crusher
חבר מתאריך 1.8.02
18936 הודעות
   19:05   11.05.10   
אל הפורום  
  29. להיפך-הכל ממומש בקובץ הheader(או שבעצם זה אותו דבר :))  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   13:49   06.05.10   
אל הפורום  
  7. שאלה  
בתגובה להודעה מספר 0
 
   שאני רוצה להשתמש עכשיו בARRAY הזה.. אני עושה INCLUDE לקובץ CPP?
כי אני לא מצליח לעבוד עם זה..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   13:58   06.05.10   
אל הפורום  
  8. בעקרון זה אמור להיות קובץ  
בתגובה להודעה מספר 7
 
   Header..כאילו שכל המימוש בתוכו..
אתה שם אותו תחת ה header files בפרוייקט ועושה לו include כרגיל..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   14:13   06.05.10   
אל הפורום  
  9. אווקי, תודה.. שאלה  
בתגובה להודעה מספר 8
 
   ערכתי לאחרונה בתאריך 06.05.10 בשעה 14:28 בברכה, ronen333
 
איך אני מאתחל את המערך סטטי הגנרי הזה במחלקה אחרת (EMPLOYEE).
עשיתי כך:
קובץ HEADER-

static Array<Location> locations;

קובץ מימוש, שמתי את זה בראש הקובץ-

Array<Location> Employee::locations;

רושם לי-
Error 1 error C2512: 'Array<T>' : no appropriate default constructor available

הבנתי שזה בגלל שאין בנאי ברירת מחדל, אבל נניח שאני רוצה לתת לו לפי בנאי לא ברירת מחדל. איך אני מאתחל את זה כמו שצריך?
נ.ב-הבנאי שכתבתי מופיע בראש האשכול..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   17:29   06.05.10   
אל הפורום  
  10. עשיתי פשוט new  
בתגובה להודעה מספר 9
 
   Array<Location> *Employee::locations=new Array<Location>(32);

אבל אחר כך שאני משתמש במערך הזה ומנסה לגשת לתכונות של הSTRUCT אז זה רושם לי:
Error 2 error C2039: 'number' : is not a member of 'Array<T>'

מה הבעיות שלו? =/
הגדרתי שזה מערך מטיפוס LOCATION, למה לעזעזל שהוא יגיד לי שזה לא חלק מARRAY<T> .


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:58   06.05.10   
אל הפורום  
  11. תפריד בין הדברים - או שההאינסטנס סטטי (ולכן יש לו  
בתגובה להודעה מספר 10
 
את ה-default constructor ואפשרות להשתמש ב-set מאוחר יותר),
או שהוא מטיפוס פויינטר (סטטי) ואז אתה עושה לו אלוקציה.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   22:35   06.05.10   
אל הפורום  
  14. עשיתי הפרדה..  
בתגובה להודעה מספר 11
 
   כעקרון משתנה סטטי מאתחלים בהגדרה.. כי לפי מה שהבנתי אין קוסנרטור סטטי בC++, לעומת C#.

אז בקובץ EMPLOYEE.H רשמתי את ההגדרה:


static Array<Location> *locations;

ובקובץ CPP רשמתי את זה:
לאחר הINCLUDים.

Array<Location> *Employee::locations=new Array<Location>(32);

ככה אני צריך, לא?

הוא מודיע לי על ERROR (כפי שרשמתי להעיל) שלT אין את התוכנה Number.. וזאת למרות שאני לא מנסה לגשת לתכונה של T אלא לARRAY מטיפוס LOCATION.. זה אמור לעבוד :|

מה הבעיה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   22:58   06.05.10   
אל הפורום  
  15. רגע, רק שאני אבין אותך, זה מוגדר סטטית בתוך מתודה  
בתגובה להודעה מספר 14
 
או גלובאלי בתוך קובץ ההאדר?


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   23:15   06.05.10   
אל הפורום  
  16. חס וחלילה גלובלית  
בתגובה להודעה מספר 15
 
   זה מוגדר במחלקה EMPLOYEE. בHEADER, ובמימוש רשמתי את מה שאמרתי..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   23:25   06.05.10   
אל הפורום  
  17. מה שעשית אז לא נכון. תחשוב שכל קלאס הוא  
בתגובה להודעה מספר 16
 
בעצם תת namespace משל עצמו.
אם זהו שדה - זה תקין.
מה שעשית בכלל לא מוגדר (לגשת למשתנה סטטי שמוגדר בתוך אחת המתודות).
מרחב הזכרון הזה שונה מאחד לשני.

על כן, 3 אפשרויות עומדות לפניך:
1. שדה סטטי ציבורי של הקלאס (ואז לגשת אליו כפי שניגשת),
2. שדה סטטי (בהנחה שיש צורך) פרטי של הקלאס (והוספת setter ו-getter).
3. משתנה גלובאלי.

ובנוגע למה שרשמת, זה נכון רק אם אתה לא חייב לממש קונסטרקטור (אבל אז הוא משתמש ב-default constructor, זה לא שהוא לא מקצה שום זכרון).


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   12:23   07.05.10   
אל הפורום  
  18. אהה.. מצטער שלא הבנת אותי :|  
בתגובה להודעה מספר 17
 
   הוא לא מוגדר באחת המטודות.. הוא מוגדר במחלקה. אני אשים פה את הקוד שאחת ולתמיד תבינו על מה אני מדבר.

Employee.h
https://rotter.name/User_files/nor/4be3dbe349f62945.txt
Employee.cpp
https://rotter.name/User_files/nor/4be3dbee4a284f6b.txt

אתה כמובן לא צריך לקרוא את כל הקוד.. רק תתמקד בשדה LOCATIONS.

ואשמח אם תרשום לי בקוד איך זה אמור להראות.. יותר נוח לי להבין ככה :P

תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   14:03   07.05.10   
אל הפורום  
  19. קודם כל, לא יודע אם ידעת אבל כל משתנה סטטי מאותחל ל-0  
בתגובה להודעה מספר 18
 
(בשונה משאר המשתנים), ככה שרוב האתחולים מיותרים (אבל ההצהרות - לא).
שנית - זה protected! אין לך גישה מבחוץ (מהגלובאל סקופ).
שלישית, לא מבין מה האינטואיציה להשתמש בגלובאל סקופ באלוקציה.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   14:07   07.05.10   
אל הפורום  
  20. מכתב  
בתגובה להודעה מספר 19
 
   אני יודע שהם מאותחלים ל0, בשונה ממשתנים רגילים אבל משום מה שלא שמתי את זה זה עשה לי שגיאת קומפלציה.
מה זה "אין לי גישה מבחוץ"? אני מממש מחלקה.. זה לא בחוץ :|
אין לי שם משהו גלובלי.. זה שדות סטטים בתוך מחלקה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   14:26   07.05.10   
אל הפורום  
  21. הבנתי. אתה לא מנסה גם לגשת מה-Main? אם לא, אז הגיוני  
בתגובה להודעה מספר 20
 
שדווקא הבעיה מכיוון Array/Location.
אבל סתם בשביל הקטע, נסה להוסיף בראש קובץ ה-C את השורה struct Location;
אתה צריך לזכור ש-template נוצר בזמן קומפילציה וסדר קדימויות ממש ממש חשוב.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   14:55   07.05.10   
אל הפורום  
  22. לא הבנתי.. איפה אתה רוצה?  
בתגובה להודעה מספר 21
 
   בראש קובץ הCPP?
כי זה בערך מה שעשיתי.. רק ששמתי את זה בתוך NAMESPACE.. זה לא בסדר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   13:42   08.05.10   
אל הפורום  
  25. בגדול כן. כמו שאמרתי, לך תדע מה סדר הקדימויות (למרות  
בתגובה להודעה מספר 22
 
שלכאורה זה נראה תקין).

בוא תעלה את כל הקוד. יהיה יותר נוח למצוא, להבין ולהסביר מאשר ללכת סחור סחור.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   11:44   09.05.10   
אל הפורום  
  27. מכתב  
בתגובה להודעה מספר 25
 
   הנה הקוד-

הקבצים שצריך להתמקד עליהם הם ARRAY וEMPLOYEE.

זו הדבר הראשון שאני כותב בC++, אז אם אתה מזעזע מהצורה שאני כותב דברים אז אל תהסס להעיר לי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   10:23   11.05.10   
אל הפורום  
  28. אני עדיין מחכה.. מישהו? X=  
בתגובה להודעה מספר 27
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   00:18   12.05.10   
אל הפורום  
  30. סורי, שכחתי ממך. לקראת הסופ''ש יהיה לי יותר זמן לעבור על זה שוב  
בתגובה להודעה מספר 28
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:50   13.05.10   
אל הפורום  
  31. הקישור נפל...  
בתגובה להודעה מספר 27
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   09:08   14.05.10   
אל הפורום  
  32. הנה  
בתגובה להודעה מספר 31
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   13:27   14.05.10   
אל הפורום  
  33. טוב, יש האמת היא המון בעיות, החל משימוש בהצהרות  
בתגובה להודעה מספר 32
 
שלא נכונה, עד לשימוש בשדות פרייבט כשהם לא אמורים להיות.

אני אישית ממליץ לך להבא לממש כל חלק בנפרד (ולדאבג אותו עם main) לפני שאתה ממשיך לצעד הבא.


בכל מקרה, הינה משהו מתקמפל.
יש הרבה הרבה תיקונים אז עדיף שתעשה diff ותראה מה שיניתי מאשר אפרט.

אבל בגדול:
1. קח בחשבון שלמשל Update לא ממומש (אתה חייב לתת הצהרה אם אתה משתמש במתודה מתישהו, גם אם היא ריקה).

2. תשאיר את ה-namespace לסוף, מה שגם הוא דיי מיותר כי כולם (אולי חוץ מ-modifstream) משתפים את ה-namespace הזה, אז הוא דיי מיותר.

3. שים לב מתי שדה/מתודה יכולה להיות private/protected ומתי לא.

4. אין סיבה שמתודה (לא פונקציה!) תהיה סטטית אם לא השתמש בקישור דינמי באף שלב (virtual, למרות שזה לא מזיק, אבל שתדע).

5. שים לב שהבעיה הראשית שהציקה לך זה בגלל ש-locations מסוג Array<Location>* וגם מימשת ל-Array את אופרטור הסוגריים [], לכן אתה צריך להשתמש ב-


(*locations)[theNumber]
התהפך קצת בפורום אבל מאמין שתבין

ולא איך שאתה ניגשת (לא לשכוח שזה פויינטר)


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




בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   14:22   14.05.10   
אל הפורום  
  34. אווקי, תודה עידן :)  
בתגובה להודעה מספר 33
 
  

מעריך את זה מאוד


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

   22:52   07.05.10   
אל הפורום  
  23. שזה בול מה שאמרתי לו :)  
בתגובה להודעה מספר 8
 
   תחשוב על זה...
המימוש זה לא תאכלס מימוש... הקומפיילר לוקח את הקוד שכתבת ומחליף כל T כל פעם במחלקה אחרת ויוצר קוד שונה לכל שימוש...
זה לא אשכרה מימוש


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   13:41   08.05.10   
אל הפורום  
  24. זה לא רק קוד שונה, לכל T הוא יוצר הגדרת מחלקה שונה  
בתגובה להודעה מספר 23
 
לגמרי, ככה שאם אתה עושה T עבור כל המספרים מ-0 עד 1000 אז יהיו לך 1001 קלאסים.


הקטע שאצלו יש בעיה אחרת. קשה להצביע מהי כאשר שלא כל הקוד ביד כי ידוע שהטמפלייטים ב-++C זה דבר מאוד רגיש אם לא משתמשים בהם בעדינות.

שיעלה את כל הקוד, אני בטוח שאמצא לו תשובה.


בברכה,
עידן


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

   18:30   08.05.10   
אל הפורום  
  26. כן זה מה שהתכוונתי שאמרתי קוד שונה...  
בתגובה להודעה מספר 24
 
   זה פשוט בונה הכל חדש ובנפרד לכל T שיש..
וכן כמו שאמרתי תגובה ראשונה C++ וטמפלטים זה הרבה בעיות וצריך להיות מודעים להמון המון "מקרי קצה" שהם לא עד כדי כך "קצה" חח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   22:02   06.05.10   
אל הפורום  
  12. אגב, הקונבנציה בהמון מקומות מבחינת מבנה קבצים  
בתגובה להודעה מספר 0
 
   הולכת ככה:
נניח יש לך מחלקה MyClass, יהיו לך את הקבצים MyClass.h
אשר יכריז על מחלקה טמפלייטית. בסוף הקובץ(לאחר הגדרת הקלאס)
תעשה

#include "MyClass.inl"

ובקובץ ה inl הזה יהיה את המימוש של כל הפונקציות הטמפלטיות.
בקובץ MyClass.cpp יהיה את שאר המימוש - כל מה שלא טמפלייטי.

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   22:31   06.05.10   
אל הפורום  
  13. אהה יפה.. תודה :)  
בתגובה להודעה מספר 12
 
  


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

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

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



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