Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 20:15   #1
dbazulev
Новичок
Джуниор
 
Регистрация: 25.11.2012
Сообщений: 1
Вопрос Перегрузка оператора []

Завожу класс TMap, который должен выполнять часть функций map<char,int>, создаю массив st, типа TVertex, d котором содержится TMap:
Код:
const int N=1100000;
class TMap
{
    public :
        int *ar[100];  
        bool count(char c);
        int operator[] (char c);
};
bool TMap::count(char c)
{
     return ar[(int)(c-'a')]!=NULL;   
}
int TMap::operator[] (char c)
{
    return *ar[(int)(c-'a')];
}
struct TVertex
{
    int link,len,cnt;
    //map<char,int> next;  
    bool is_clone;
    vector<int> lens;
    TMap next;
};
TVertex st[N];
Далее делаю присваивание:
Код:
st[p].next[c]=cur;
, где p - int, c - char, cur - int

Получаю non-lvalue in assignment

Разыменовывание вроде сделал при возврате, в чем проблема?
dbazulev вне форума Ответить с цитированием
Старый 02.12.2012, 20:19   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2dbazulev
ссылку возвращать нужно. и оператор константным сделать. и при возврате проверять, что не вылезаешь за пределы массива.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка оператора (C++) Sergey S Помощь студентам 6 08.01.2012 13:01
перегрузка оператора ++ nhr Помощь студентам 0 04.05.2011 21:20
перегрузка оператора = mcpro Общие вопросы C/C++ 8 04.02.2011 15:28
перегрузка оператора [] в c++ terminadoor Общие вопросы C/C++ 3 21.01.2010 15:44
Перегрузка оператора + (С++) MjRed Помощь студентам 1 15.12.2008 18:57