Перегрузка оператора вызова ()

237
03 мая 2017, 11:31

подскажите, как перегрузить operator() так, чтобы индексация строк начиналась с отрицательного числа. (ну то есть чтобы я мог обращаться, например, так - с(-2,0))

class matrix
{
    double **c;
    int m;
    int n;
}

часть кода на с++

Answer 1

Ну, если у вас инициализируется массив так -

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 и их инициализацию...

READ ALSO
Вывести текст из бинарного &ldquo;01&rdquo; кода

Вывести текст из бинарного “01” кода

Привет всем! Нужно декодировать из двоичной системы, то есть, дан бинарный код и я должен его расшифровать и вывести полученные символы на экран(текст)

249
Найти значения в подмассиве

Найти значения в подмассиве

Есть массив section = [[0, 4, 8, 12], [1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15]]; И массив numbers = [2,3,5,8,10,14,15];

417