подскажите, как перегрузить operator() так, чтобы индексация строк начиналась с отрицательного числа. (ну то есть чтобы я мог обращаться, например, так - с(-2,0))
class matrix
{
double **c;
int m;
int n;
}
часть кода на с++
Ну, если у вас инициализируется массив так -
c = new double*[n];
for(int i = 0; i < n; ++i)
с[i] = new double[m];
то все просто -
const double& operator()(int row, int col) const
{
return c[row+offsetR][col+offsetC];
}
double& operator()(int row, int col)
{
return c[row+offsetR][c+oloffsetC];
}
Коды проверок не выхода за границу и т.п. добавьте сами, как и внесите в сам класс поля offsetR и offsetC и их инициализацию...
Сборка персонального компьютера от Artline: умный выбор для современных пользователей