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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 14:10   #1
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию Переопределить оператор [] для матрицы C++

Никогда не сталкивался, но вот сейчас понадобилось, с векторами все просто было, а вот с матрицами не канает.
Код:
...
double& operator[](int j, int i); //ругается
...
double& Matrix::operator[](int j, int i)
{
	if((i>=0) && (i<=a) && (j>=0) && (j<=b)) return m[i+j*a];
}
По заданию матрицу можно хранить тремя способами, в виде одномерного массива, в ввиде 2D и в виде массива указателей на строки матрицы.

Можно конечно реализовать возврат указателя на начало строки
return m+j*a*sizeof(double);
Но в таком случает я не могу проверить правильность введенного столбца.
Вопрос: можно ли что-то сделать с проверкой x координаты(столбца) при указанных формах хранения матрицы?

будь моя воля, я бы хранил матрицу в виде массива структур, где там и там переопределил оператор []...
Kostia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Перегрузка операторов. Создать оператор (+) для сложения строк Sanu0074 Помощь студентам 4 05.07.2010 21:29
Переопределить оперцаю сложения LuBuMaster Общие вопросы C/C++ 10 06.05.2010 02:54
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
Переопределить функцию DirtyBASS Помощь студентам 0 07.11.2009 15:46
Помогите! не могу переопределить Click 4kir Общие вопросы C/C++ 2 12.01.2008 22:09