Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

Проблема с объявлением оператора для var[idx] = val;   Найти похожие ветки 

 
VEG   (2003-07-16 13:16) [0]

Создаю класс, который работает с орератором индексации [].
Проблема при объявлении оператора, когда он находится слева выражения (variable[index] = value;)
Вот что я написал:
class scfgidx {
public:
string operator [] (const UINT idx) const;//varIn = varOut[idx];
};
/*
scfgidx& operator [] (const UINT idx, const string str);//var[idx] = val; //Как я понимаю, нужно писать нечто вроде этого...
*/


 
VEG   (2003-07-16 16:11) [1]

Но так ведь можно сделать?!?


 
Suntechnic   (2003-07-16 17:35) [2]

Ну а в чём проблема то?


 
VEG   (2003-07-16 18:12) [3]

Как объявить оператор [] для var[idx] = val;


 
Suntechnic   (2003-07-16 18:27) [4]

Что-то я тебя не пойму.
Какого типа переменная val? Если string то пиши
string operator [] (const UINT idx) const;
или
string & operator [] (const UINT idx) const; в зависимости от логки твоего класса. Опять же, если val не типа string, то возвращай тот тип, который тебе нужен.

P.S.
Только не вздумай написать что-то типа этого:
string & operator [] (const UINT idx) const
{
string temp;
//... do something
return temp;
}


 
VEG   (2003-07-16 18:52) [5]

Это я уже написал. Нужна обратная ф-ия.
переменная[индекс]=присваеваемое значение


 
Suntechnic   (2003-07-16 18:56) [6]

>VEG ©
Ты что издеваешься надо мной? Какая ещё "обратная ф-ция"? Объясни нормальным языком что надо.


 
VEG   (2003-07-16 19:03) [7]

scfgidx sss;
sss[1]="text";


 
ZZ   (2003-07-16 19:04) [8]

VEG
Ты сайтом случайно не ошибся? :)


 
VEG   (2003-07-16 19:08) [9]

Неа


 
Suntechnic   (2003-07-16 19:11) [10]

Для случая

scfgidx sss;
sss[1]="text";

оператор
string operator [] (const UINT idx) const;
или
string & operator [] (const UINT idx) const;


 
VEG   (2003-07-16 19:19) [11]

Тогда где мне взять параметр, что присваивают элементу?


 
Suntechnic   (2003-07-16 19:39) [12]

Какой ещё параметр? Зачем он нужен?
Есть оператор индексации. Прегрузки этого оператора подразумевает использование только одного параметра как индекса. Если у тебя много параметров, то это уже не оператор индексации и перегружать тут нечего. Пиши отдельную ф-цию для присвоения значения.


 
VEG   (2003-07-16 19:47) [13]

Не понимаю. Откуда мне узнать, что присваивают? Пожалуйста, можно пример?


 
Suntechnic   (2003-07-16 19:53) [14]

>VEG ©
Ну какой ещё пример? Ты понимаешь что такое оператор индексации? Это не оператор присвоения и сам по себе он ничего не присваивает и следовательно ему не нужны никакие параметры. Опрератор индексации всего лишь возвращает значение, которое может быть впоследствии чему-нибудь быть присвоено или быть изменено, если он возвращает ссылку или указатель. Что такое lvalue тебе я надеюсь объяснять не надо? Так вот оператор индексации всегда возвращает lvalue.


 
VEG   (2003-07-16 19:54) [15]

Попробую понять...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-10403
Knight
2003-07-16 21:53
2003.08.04
Кто встречал справку с описанием объектов?


14-10401
avlan
2003-07-17 14:37
2003.08.04
DSPack


14-10389
Danilcha
2003-07-17 02:35
2003.08.04
Российский студент обошел программистов NASA


4-10525
ych_boriss
2003-06-03 12:37
2003.08.04
мессаги WM_MOUSELEAVE, WM_MOUSEHOVER.


1-10243
Endi
2003-07-21 01:43
2003.08.04
Как объяснить форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский