У меня есть класс "Матрица". И в нём нужно перегрузить оператор [] так, дабы при обращении [][] к элементам имело смысл, аналогично встроенному. Пробовал так:
Matrix& operator[][](int a,int b);
Не получилось, поиски в Google ни к чему не привели. Может кто-то знает как реализовать?
Определите оператор [], который будет возвращать строку - как указатель, вектор или еще что-то, для чего определен оператор [], который будет возвращать ссылку на конкретный элемент...
Простейший пример:
class Matrix
{
public:
Matrix(int R, int C):R(R),C(C)
{
d = new int*[R];
for(int i = 0; i < R; ++i)
d[i] = new int[C];
}
~Matrix()
{
for(int i = 0; i < R; ++i)
delete[] d[i];
delete[] d;
}
int* operator[](int idx) { return d[idx]; }
const int* operator[](int idx) const { return d[idx]; }
private:
int ** d;
int R, C;
};
int main()
{
Matrix M(3,3);
for(int i = 0; i < 3; ++i)
for(int j = 0; j < 3; ++j)
M[i][j] = 10*i + j;
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
cout << setw(2) << M[i][j] << " ";
}
cout << endl;
}
}
Естественно, никакие ошибки у меня не обрабатываются.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости