ВУЗ:
Составители:
Рубрика:
134
// Конструктор:
Matrix::Matrix (int row, int col ){
pm = new Array * [ row ];
for (int i = 0; i < row; i ++ ) pm [ i ] = new Array (col);
r = row; c = col;
}
Matrix:: ~Matrix (){for ( int i = 0; i<r; i ++)delete pm[i]; delete pm; }
ostream & Matrix::print ( ostream &s ){
s<<“\n“;
for ( int i =0; i < r; i++ ){
Array &v = *pm [ i ];
for ( int j = 0; j < c; j++ ) s << v [ j ] <<“ “;
s << “\n“; }
return s ;
}
Matrix & Matrix::operator = ( Matrix & tmp ) {
if ( r != tmp.r ) { cout << “Разные размеры массивов!\n“; exit (1); }
for ( int i = 0; i < r; i++ ) *pm [ i ] = tmp [ i ];
return *this;
}
Matrix & Matrix::operator + ( Matrix & op2 ){
if ( r != op2.r ) { cout << “Разные размеры массивов!\n“; exit (1); }
Matrix & tmp = *( new Matrix ( r, c ));
for ( int i = 0; i < r ; i++ ) tmp [ i ] = *pm[ i ] + op2[ i ];
return tmp;
}
Matrix & Matrix::operator *( Matrix & op2 ) {
if ( c != op2.r ) {
cout << “Нельзя перемножить матрицы!\n“; exit (1);}
Matrix & tmp = *( new Matrix ( r, op2.c));
for ( int i = 0; i < r ; i++ )
for ( int j = 0; j<op2.c; j++){ tmp[ i ][ j ] =0;
for ( int k = 0; k < c ; k++ ) tmp [ i ][ j ]+=(*this)[ i ][ k ]*op2[k ][ j ];
}
return tmp;}
ostream & operator << ( ostream &s, Matrix & m ){ m.print ( s );
return s;}
// Конец файла Matrix.cpp
Страницы
- « первая
- ‹ предыдущая
- …
- 130
- 131
- 132
- 133
- 134
- …
- следующая ›
- последняя »