ווויני! ../images/Emo13.gif
רק שתדע דבר לעתיד שיחסוך לך צרות (במידה ואתה לא יודע כבר). בכל ה-containers של STL, כשאתה מגדיר אותם בתור מכילי מחלקה מסוג C ואתה עושה insert (או כל פעולה דומה) ל
אובייקט מסוג C מה שקורה בעצם זה שה-container יוצר לו
עותק של האובייקט שהעברת לו. זה משמעותי מפני שאם לא הגדרת copy ctor כמו שצריך במחלקה שלך אתה עלול להיתקל בצרות כי מבוצע shallow copy. רק תזכור לעתיד. הייתי ממליץ לך לעבוד עם מצביעים לאובייקטים מסוג C ולא עם אובייקטים מסוג C. וספציפית לגבי map:
typedef map<int, C*> CMapper; typedef map<int, C*>::iterator CNodeIterator; // to add to the map CMapper cm; C* pC = new C; cm[1] = pC; // inserts the pointer with an integer key equal to 1
זו השיטה המקובלת עד כמה שידוע לי