operator[]

זויברג

New member
operator[]

אני רוצה לממש מחלקה שמשתמש באופרטור [] בשביל לקבל גישה לנתונים כמו מערך. בשביל לעשות למשל:
a = myClass[5];​
אני משתמש ב:
operator [] (const int &i)​
אבל נגיד ואני רוצה להציב:
myClass[5] = a;​
איך הולך הסינטקס של הפונקציה לעשות את האופרטור הזה? מישהו יודע ויכול לעזור לי?
 

mooznach

New member
ככה:

קריאה:
int operator [](int i) const { return m_data; }

כתיבה:
int &operator [](int i) { return m_data; }
 

voguemaster

New member
ובעברית

אתה צריך להחזיר רפרנס לאובייקט (במקרה זה INT) שקיים במחלקה שלך כך שתוכל לבצע לו asignment עם ערך חדש. במידה וזה לא היה INT היית גם צריך לדרוס את אופרטור = כדי שזה יבוצע כמו שצריך
 
למעלה