У меня есть двухмерная константная двойная матрица, которую нужно передать в качестве аргумента функции, которая принимает (неконстантный) параметр double**.
[CEqParams.h] // < given as is - can't do a thing about it
class CEqParams
{
public:
void operator=(const CEqParams &right);
...
double dm_params[4][8];
};
.
[some_functions.h] // < dto.
...
void setEqParams(double **m);
...
.
[CEqParams.cpp]
void CEqParams::operator=(const CEqParams &right)
{
setEqParams( « magic here » );
}
где « magic here »
(в последнем сегменте фрагментов кода) должен принимать right.dm_params
(или соответствующее представление его содержимого соответственно).
Что еще, кроме ручного переноса right.dm_params
во вспомогательную структуру double**
(с помощью вложенного цикла, перебирающего все поля массива и копирующего их по одному) и последующей передачи последнего в setEqParams
, я мог здесь сделать?
PS: И учитывая, что я смогу передать right.dm_params
функции, которая принимает double[][]
(или double[4][8]
?) в качестве параметра - как мне избавиться от const
? "Подсказка": const_cast<double[4][8]>(right.dm_parameters)
не работает.
double**
не является указателем на двумерный массив. Это указатель на [первый элемент в массиве] указателей. - person Lightness Races in Orbit   schedule 22.09.2011T[][]
НЕ не совпадает сT**
. - person Puppy   schedule 22.09.2011