alirezabe
چهارشنبه 23 دی 1388, 17:39 عصر
سلام
من کلاس ماتریس را نوشتم ولی حالا که می خواهم آن را به template تبدیل کنم از من خطا می گیرد و جمله ی زیر را می نویسد می شه بگید اشکال کارم کجاست
default template arguments are only allowed on a class template
این هم هدر فایلم
#include <ostream>
#include <istream>
using namespace std;
template <class T=int>
class MATRIX
{
friend MATRIX<T> operator*(T num , MATRIX<T> mat);
friend ostream &operator<<(ostream &out , MATRIX<T> mat);
friend istream &operator>>(istream &in , MATRIX<T> &mat);
private:
int row;
int column;
T **MatrixArray;
public:
MATRIX<T>();
MATRIX<T>(int row_num, int column_num);
MATRIX<T>(MATRIX &mat);
~MATRIX<T>();
void getMatrix();
void setMatrix();
MATRIX<T> operator=(MATRIX<T> mat);
MATRIX<T> operator*(MATRIX<T> mat);
MATRIX<T> operator*(int T);
MATRIX<T> operator+(MATRIX<T> mat);
MATRIX<T> operator-(MATRIX<T> mat);
MATRIX<T> operator++();
MATRIX<T> operator++(int);
T* operator[](int num);
bool operator==(MATRIX<T> mat);
};
و این هم طریفش
#include <iostream>
#include "MATRIX.h"
using namespace std;
template <class T=int>
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX()
{
row=1;
column=1;
MatrixArray = new T *[row];
MatrixArray[0] = new T [column];
MatrixArray[0][0] = 0;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX(int row_num ,int column_num)
{
row = row_num;
column = column_num;
MatrixArray = new T *[row_num];
for (int i=0 ; i<row_num ; i++)
{
MatrixArray[i] = new T [column];
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=0;
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX(MATRIX<T> &mat)
{
row = mat.row;
column = mat.column;
MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i] = new T [column];
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=mat.MatrixArray[j][k];
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
void MATRIX<T> ::getMatrix()
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
cout << MatrixArray[i][j] << "\t" ;
}
cout << endl;
}
return ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
void MATRIX<T>::setMatrix()
{
cout << "please enter number of the matrix row: " ;
cin >> row ;
cout << "please enter number of the matrix column: " ;
cin >> column;
MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i] = new T [column];
}
cout << "palease enter the dray of matrix: " << endl ;
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
cout << "dray["<<j+1<<"]"<<"["<<k+1<<"]=";
cin>> MatrixArray[j][k];
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator =(MATRIX<T> mat)//MOHEM MOSHKEL DASHTI
{
row = mat.row;
column = mat.column;
MatrixArray = new T *[mat.row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i]= new T [mat.column];
}
for (int j=0 ; j<row ; j++)
{
for ( int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=mat.MatrixArray[j][k];
}
}
return *this;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator *(MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( column != mat.row)
{
cout << "I can not * these Matrixs! " << endl ;
return tempMAT;
}
cout << endl;
cout << "this is the * of two matrixs:" << endl ;
cout << endl;
tempMAT.row = row;
tempMAT.column = mat.column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [mat.column];
}
for ( int ii=0 ; ii<tempMAT.row ; ii++)
{
for ( int jj=0 ; jj<tempMAT.column ; jj++)
{
tempMAT.MatrixArray[ii][jj]=0;
}
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<mat.column ; k++)
{
for (int l=0 ; l<mat.row ; l++)
{
tempMAT.MatrixArray[j][k] += (MatrixArray[j][l]) * (mat.MatrixArray[l][k]);
}
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator *(T num)
{
MATRIX<T> tempMAT;
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int ii=0 ; ii<row ; ii++)
{
tempMAT.MatrixArray[ii] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] * num;
}
}
return tempMAT ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> operator *(T num , MATRIX<T> mat) // MOHEM ESHKAL DASHTI DAR TARIF HEADER TABE
{
for (int i=0 ; i<mat.row ; i++)
{
for (int j=0 ; j<mat.column ; j++)
{
mat.MatrixArray[i][j] = (mat.MatrixArray[i][j]*num) ;
}
}
return mat ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator +(const MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( row != mat.row && column != mat.column)
{
cout << "I can not + these Matrixs!" << endl ;
return tempMAT;
}
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] + mat.MatrixArray[i][j];
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator -(const MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( row != mat.row && column != mat.column)
{
cout << "I can not - these Matrixs!" << endl ;
return tempMAT;
}
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] - mat.MatrixArray[i][j];
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
T* MATRIX<T> ::operator [](int num)//MAFHOOMASH DOROST JA NAYOFTAF
{
return MatrixArray[num];
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T> ::operator ++()
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
MatrixArray[i][j] = MatrixArray[i][j] + 1 ;
}
}
return *this ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T> ::operator ++(int)
{
MATRIX<T> tempMAT;
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
tempMAT=*this;
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
MatrixArray[i][j] = MatrixArray[i][j] + 1 ;
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
ostream &operator<< (ostream &out , MATRIX<T> mat)
{
for (int i=0 ; i<mat.row ; i++)
{
for (int j=0 ; j<mat.column ; j++)
{
out << mat.MatrixArray[i][j] << "\t" ;
}
out << endl;
}
return out;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
istream &operator>>(istream &in , MATRIX<T> &mat)// MOHEM AGAR & DOVOM GOZASHTE NASHAVAD HICH CHIZI ENGGAR DAR MATRIX GHARAR NAGEREFTE
{
cout << "please enter number of the matrix row: " ;
cin >> mat.row ;
cout << "please enter number of the matrix column: " ;
cin >> mat.column;
mat.MatrixArray = new T *[mat.row];
for (int i=0 ; i<mat.row ; i++)
{
mat.MatrixArray[i] = new T [mat.column];
}
cout << "palease enter the dray of matrix: " << endl ;
for (int j=0 ; j<mat.row ; j++)
{
for (int k=0 ; k<mat.column ; k++)
{
cout << "dray["<<j+1<<"]"<<"["<<k+1<<"]=";
in>> mat.MatrixArray[j][k];
}
}
return in;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
bool MATRIX<T> ::operator ==(MATRIX<T> mat)//MOHEM MIKHASTI BAR AX BERI YANI DAR IF FOR MINEVESHTI
{
if (row == mat.row && column == mat.column)
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
if (MatrixArray[i][j] != mat.MatrixArray[i][j])
{
return 0;
}
}
}
return 1;
}
else
return 0;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::~MATRIX()
{
//MatrixArray = delete * [row];
//for(int i=0 ; i<row ; i++ )
//{
// MatrixArray[i] = delete [column]
//}
cout << "your matrix delete" << endl;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
با تشکر
علیرضا
من کلاس ماتریس را نوشتم ولی حالا که می خواهم آن را به template تبدیل کنم از من خطا می گیرد و جمله ی زیر را می نویسد می شه بگید اشکال کارم کجاست
default template arguments are only allowed on a class template
این هم هدر فایلم
#include <ostream>
#include <istream>
using namespace std;
template <class T=int>
class MATRIX
{
friend MATRIX<T> operator*(T num , MATRIX<T> mat);
friend ostream &operator<<(ostream &out , MATRIX<T> mat);
friend istream &operator>>(istream &in , MATRIX<T> &mat);
private:
int row;
int column;
T **MatrixArray;
public:
MATRIX<T>();
MATRIX<T>(int row_num, int column_num);
MATRIX<T>(MATRIX &mat);
~MATRIX<T>();
void getMatrix();
void setMatrix();
MATRIX<T> operator=(MATRIX<T> mat);
MATRIX<T> operator*(MATRIX<T> mat);
MATRIX<T> operator*(int T);
MATRIX<T> operator+(MATRIX<T> mat);
MATRIX<T> operator-(MATRIX<T> mat);
MATRIX<T> operator++();
MATRIX<T> operator++(int);
T* operator[](int num);
bool operator==(MATRIX<T> mat);
};
و این هم طریفش
#include <iostream>
#include "MATRIX.h"
using namespace std;
template <class T=int>
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX()
{
row=1;
column=1;
MatrixArray = new T *[row];
MatrixArray[0] = new T [column];
MatrixArray[0][0] = 0;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX(int row_num ,int column_num)
{
row = row_num;
column = column_num;
MatrixArray = new T *[row_num];
for (int i=0 ; i<row_num ; i++)
{
MatrixArray[i] = new T [column];
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=0;
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::MATRIX(MATRIX<T> &mat)
{
row = mat.row;
column = mat.column;
MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i] = new T [column];
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=mat.MatrixArray[j][k];
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
void MATRIX<T> ::getMatrix()
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
cout << MatrixArray[i][j] << "\t" ;
}
cout << endl;
}
return ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
void MATRIX<T>::setMatrix()
{
cout << "please enter number of the matrix row: " ;
cin >> row ;
cout << "please enter number of the matrix column: " ;
cin >> column;
MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i] = new T [column];
}
cout << "palease enter the dray of matrix: " << endl ;
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
cout << "dray["<<j+1<<"]"<<"["<<k+1<<"]=";
cin>> MatrixArray[j][k];
}
}
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator =(MATRIX<T> mat)//MOHEM MOSHKEL DASHTI
{
row = mat.row;
column = mat.column;
MatrixArray = new T *[mat.row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i]= new T [mat.column];
}
for (int j=0 ; j<row ; j++)
{
for ( int k=0 ; k<column ; k++)
{
MatrixArray[j][k]=mat.MatrixArray[j][k];
}
}
return *this;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator *(MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( column != mat.row)
{
cout << "I can not * these Matrixs! " << endl ;
return tempMAT;
}
cout << endl;
cout << "this is the * of two matrixs:" << endl ;
cout << endl;
tempMAT.row = row;
tempMAT.column = mat.column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [mat.column];
}
for ( int ii=0 ; ii<tempMAT.row ; ii++)
{
for ( int jj=0 ; jj<tempMAT.column ; jj++)
{
tempMAT.MatrixArray[ii][jj]=0;
}
}
for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<mat.column ; k++)
{
for (int l=0 ; l<mat.row ; l++)
{
tempMAT.MatrixArray[j][k] += (MatrixArray[j][l]) * (mat.MatrixArray[l][k]);
}
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator *(T num)
{
MATRIX<T> tempMAT;
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int ii=0 ; ii<row ; ii++)
{
tempMAT.MatrixArray[ii] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] * num;
}
}
return tempMAT ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> operator *(T num , MATRIX<T> mat) // MOHEM ESHKAL DASHTI DAR TARIF HEADER TABE
{
for (int i=0 ; i<mat.row ; i++)
{
for (int j=0 ; j<mat.column ; j++)
{
mat.MatrixArray[i][j] = (mat.MatrixArray[i][j]*num) ;
}
}
return mat ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator +(const MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( row != mat.row && column != mat.column)
{
cout << "I can not + these Matrixs!" << endl ;
return tempMAT;
}
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] + mat.MatrixArray[i][j];
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T>::operator -(const MATRIX<T> mat)
{
MATRIX<T> tempMAT;
if ( row != mat.row && column != mat.column)
{
cout << "I can not - these Matrixs!" << endl ;
return tempMAT;
}
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[i][j] = MatrixArray[i][j] - mat.MatrixArray[i][j];
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
T* MATRIX<T> ::operator [](int num)//MAFHOOMASH DOROST JA NAYOFTAF
{
return MatrixArray[num];
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T> ::operator ++()
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
MatrixArray[i][j] = MatrixArray[i][j] + 1 ;
}
}
return *this ;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> MATRIX<T> ::operator ++(int)
{
MATRIX<T> tempMAT;
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new T *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new T [column];
}
tempMAT=*this;
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
MatrixArray[i][j] = MatrixArray[i][j] + 1 ;
}
}
return tempMAT;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
ostream &operator<< (ostream &out , MATRIX<T> mat)
{
for (int i=0 ; i<mat.row ; i++)
{
for (int j=0 ; j<mat.column ; j++)
{
out << mat.MatrixArray[i][j] << "\t" ;
}
out << endl;
}
return out;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
istream &operator>>(istream &in , MATRIX<T> &mat)// MOHEM AGAR & DOVOM GOZASHTE NASHAVAD HICH CHIZI ENGGAR DAR MATRIX GHARAR NAGEREFTE
{
cout << "please enter number of the matrix row: " ;
cin >> mat.row ;
cout << "please enter number of the matrix column: " ;
cin >> mat.column;
mat.MatrixArray = new T *[mat.row];
for (int i=0 ; i<mat.row ; i++)
{
mat.MatrixArray[i] = new T [mat.column];
}
cout << "palease enter the dray of matrix: " << endl ;
for (int j=0 ; j<mat.row ; j++)
{
for (int k=0 ; k<mat.column ; k++)
{
cout << "dray["<<j+1<<"]"<<"["<<k+1<<"]=";
in>> mat.MatrixArray[j][k];
}
}
return in;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
bool MATRIX<T> ::operator ==(MATRIX<T> mat)//MOHEM MIKHASTI BAR AX BERI YANI DAR IF FOR MINEVESHTI
{
if (row == mat.row && column == mat.column)
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
if (MatrixArray[i][j] != mat.MatrixArray[i][j])
{
return 0;
}
}
}
return 1;
}
else
return 0;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
template <class T=int>
MATRIX<T> ::~MATRIX()
{
//MatrixArray = delete * [row];
//for(int i=0 ; i<row ; i++ )
//{
// MatrixArray[i] = delete [column]
//}
cout << "your matrix delete" << endl;
}
/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# *#*#*#*#*#*#*#*#*#*#*/
با تشکر
علیرضا