Вот объявление используемого мной конструктора:
_Task Multiplier {
int **Z;
int **X;
int **Y;
int xr, xcols_yrows, yc;
void main() {
for( int i = 0; i < xcols_yrows; i++ ) {
matrixmultiply(Z, X, xr, i, Y, yc);
}
}
public:
Multiplier( int *Z[], int *X[], int *Y[], int xr, int xcols_yrows, int yc) :
Z( Z ), X( X ), Y( Y ), xr( xr ), xcols_yrows( xcols_yrows ), yc( yc ) {}
};
И вот где оно используется:
int xrows, xcols_yrows, ycols;
// [cols][rows]
int X[xrows][xcols_yrows], Y[xcols_yrows][ycols], Z[xrows][ycols];
// start threads to multiply rows
Multiplier *multipliers[xrows];
for( int r = 0; r < xrows; r++ ) {
multipliers[r] = new Multiplier( &Z, &X, &Y, r, xcols_yrows, ycols );
}
(все они инициализированы) Но я получаюэта странная ошибка:
q3.cc: In member function 'virtual void uMain::main()':
q3.cc:132: error: no matching function for call to 'Multiplier::Multiplier(int (*)[(((unsigned int)(((int)xrows) + -0x00000000000000001)) + 1)][(((unsigned int)(((int)ycols) + -0x00000000000000001)) + 1)], int (*)[(((unsigned int)(((int)xrows) + -0x00000000000000001)) + 1)][(((unsigned int)(((int)xcols_yrows) + -0x00000000000000001)) + 1)], int (*)[(((unsigned int)(((int)xcols_yrows) + -0x00000000000000001)) + 1)][(((unsigned int)(((int)ycols) + -0x00000000000000001)) + 1)], int&, int&, int&)'
q3.cc:37: note: candidates are: Multiplier::Multiplier(int**, int**, int**, int, int, int, UPP::uAction)
q3.cc:26: note: Multiplier::Multiplier(Multiplier&)
make: *** [q3.o] Error 1