Форум программистов, компьютерный форум CyberForum.ru

Перегрузка операции [][] для класса Матрица - C++

Восстановить пароль Регистрация
 
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
26.12.2010, 16:03     Перегрузка операции [][] для класса Матрица #1
Добрый день.

Возможно, кто нить знает, как правильно перегрузить операцию [][] для класса Матрица.
Класс описан так
C++
1
2
3
4
5
6
7
8
9
class matrix
{
private:
    float **matr;   //матрица
    int n;
public:
    float& operator[] (int i, int j) {return matr[i][j]}    //доступ к заданному элементу матрицы
 
};
Но компилятор на такой код выдает ошибки.
в чем может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
26.12.2010, 18:02     Перегрузка операции [][] для класса Матрица #2
C++
1
2
float* operator[](int i) { return matr[i]; } 
const float* operator[](int i) const { return matr[i]; }
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
26.12.2010, 21:55  [ТС]     Перегрузка операции [][] для класса Матрица #3
спасибо за совет, но обращение по индексу не работает, выводит только первую строку.
C++
1
2
3
4
matrix *mat = new matrix(n);
for (int i=0; i<n; i++)
    for (int j=0; j<n; j++)
        cout << *(mat[i][j]) << "   ";
как быть?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
26.12.2010, 22:08     Перегрузка операции [][] для класса Матрица #4
C++
1
(*mat)[i][j]
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
26.12.2010, 22:19  [ТС]     Перегрузка операции [][] для класса Матрица #5
Спасибо, очень выручили. Все работает.
Yandex
Объявления
26.12.2010, 22:19     Перегрузка операции [][] для класса Матрица
Ответ Создать тему
Опции темы

Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru