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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
patriot2008
72 / 72 / 4
Регистрация: 04.12.2008
Сообщений: 463
#1

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

26.12.2010, 16:03. Просмотров 909. Ответов 4
Метки нет (Все метки)

Добрый день.

Возможно, кто нить знает, как правильно перегрузить операцию [][] для класса Матрица.
Класс описан так
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]}    //доступ к заданному элементу матрицы
 
};
Но компилятор на такой код выдает ошибки.
в чем может быть проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 16:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операции [][] для класса Матрица (C++):

Перегрузка операции < для класса вектор - C++
всем привет. есть класс вектор (одномерный массив). есть два объекта A и B этого класса. необходимо перегрузить операцию &lt; (A&lt;B). при...

Перегрузка операторов для класса "Матрица" - C++
Доброго времени суток. Помогите довести до ума код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &quot;math.h&quot;...

Перегрузка оператора >> для дочернего класса от базового виртуального класса - C++
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Добавить в определение класса Матрица перегрузку операции сложения скаляра с матрицей - C++
Добавить в определение класса Matrix, реализовать и протестировать функции перегрузки операции сложения скаляра с объектом-матрицей как...

Перегрузка операции + для сложения элементов динамического массива - C++
Написал класс, создаваемый объект является динамическим массивом заполняемый рандомом по умолчанию, или через cin, пытаюсь описать...

Перегрузка оператора для класса - C++
Здравствуйте! Подскажите, пожалуйста, почему так не работает: class ClassA { public: ClassA() { m = 1; ...

4
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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]; }
1
patriot2008
72 / 72 / 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]) << "   ";
как быть?
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
26.12.2010, 22:08 #4
C++
1
(*mat)[i][j]
1
patriot2008
72 / 72 / 4
Регистрация: 04.12.2008
Сообщений: 463
26.12.2010, 22:19  [ТС] #5
Спасибо, очень выручили. Все работает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 22:19
Привет! Вот еще темы с ответами:

Перегрузка операторов для класса - C++
class A { private: size_t i; public: size_t i_get() { return i; } };

Перегрузка << , >> для шаблонного класса - C++
Доброго времени суток всем! Данная тема не раз подымалась на форуме.. Но есть но.. Помогите перегрузить операторы побитового сдвига для...

перегрузка == для класса string - C++
можно ли для существующего класса string перегрузить оператор не вмешиваясь в библиотеку? ни разу не сталкивался. Error: стринг не...

Перегрузка operator<< для шаблонного класса - C++
Добрый день не могу понять как реализовать перегрузку &lt;&lt; для шаблонного класса template &lt;class T&gt; class List { public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
26.12.2010, 22:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru