Реферат: Разработка библиотечных средств
Matrix<VARTYPE> extract(dim, dim, dim=0, dim=0);// извлечь часть матрицы
Matrix<VARTYPE>& newsize(dim, dim=1);// установить новые размеры
void swap_line(dim, dim);//обмен строками матрицы
void swap_column(dim, dim);// обмен столбцами матрицы
friend Matrix<VARTYPE> operator+(const Matrix<VARTYPE>&,const Matrix<VARTYPE>&);//A-B
friend Matrix<VARTYPE> operator-(const Matrix<VARTYPE>&,const Matrix<VARTYPE>&);//A-B
friend Matrix<VARTYPE> operator*(const Matrix<VARTYPE>&,const Matrix<VARTYPE>&);//A*B
friend Matrix operator*(const double&,const Matrix<VARTYPE>&); //k*A
friend Matrix operator*(const Matrix<VARTYPE>&, const double&); //A*k
friend ostream& operator<<(ostream&,Matrix<VARTYPE>&);
// потоковый вывод матрицы
friend int operator>>(istream&,Matrix<VARTYPE>&);
// потоковый ввод существ. матрицы
// 0 - без. ошибок, 1 - была ошибка
dim read(ifstream&); // файловое чтение и запись матрицы
dim write(ofstream&);// в ее внутреннем, двоичном представлении.
friend VARTYPE operator %(const Matrix<VARTYPE>&,const Matrix<VARTYPE>&);
//Функция ошибок
void ERROR_MATRIX(dim) const;
};
// Реализация класса матриц
template <class VARTYPE>
Matrix<VARTYPE>::Matrix(dim M, dim N)
{
m=M;
n=N;
matr=new VARTYPE[m*n];
if(!matr) ERROR_MATRIX(1);
setmem(matr,sizeof(VARTYPE)*m*n,0);