Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как перегрузить ()= для class... MAP(X,Y)=... ?


Автор: mes 23.6.2006, 13:39
У меня есть класс MAP
Подскажите пожалуйста, как в нем надо перегрузить операторы, чтоб стали коректными следующие строчки кода :


MAP (2,1)=5;

char c=MAP (1,1);


Спасибо заранее. smile  

Автор: skyboy 23.6.2006, 15:40
а разве круглые скобки - это оператор? почему бы не использовать оператор указания индекса "[]"? 

Автор: Daevaorn 23.6.2006, 15:46
Цитата(skyboy @  23.6.2006,  16:40 Найти цитируемый пост)
а разве круглые скобки - это оператор?

а что это тогда? пременная?smile


mes, 
Например так, возвращай ссылку:
Код

class Map
{
public:
    int& operator()( int x, int y )
    {
        return map_[ x ][ y ];
    }
private:
    int map_[ 10 ][ 10 ];
};

int main()
{
    Map map;
    map( 5, 5 ) = 234;
    int val = map( 2, 6 );
    return 0;
}
 

Автор: mes 23.6.2006, 16:05
2Daevaorn: Спасибо! Именно так, как мне надо было smile
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)