Image

Imageantoshka1303 wrote in Imageru_cpp

перегрузка операции +

У менят в программе в классе нужно с помощью конструктора инициализировать матрицу и огранизовать суммирование 2х матриц с помощью перегрузки. С перегрузкой + какая-то ошибка.



#include
[Error: Irreparable invalid markup ('<iostream.h>') in entry. Owner must fix manually. Raw contents below.]

У менят в программе в классе нужно с помощью конструктора инициализировать матрицу и огранизовать суммирование 2х матриц с помощью перегрузки. С перегрузкой + какая-то ошибка.


<lj-cut>
#include <iostream.h>

class tagMatrix
{
int len;
int **matr;

public:
tagMatrix(); // edinichnaya matriza

tagMatrix(int );
tagMatrix(int, int );
tagMatrix(tagMatrix &);
tagMatrix operator +( tagMatrix &);
friend ostream& operator << ( ostream& ,tagMatrix &);


~tagMatrix()
{
delete matr;
for (int i=0; i<(len);i++)
delete matr[i];


}

};
tagMatrix::tagMatrix()
{
len=2;
matr = new int *[len];
for(int i = 0; i < (len); i++)
matr[i] = new int[len];

for( i=0;i < (len); i++)
{
for(int j=0;j < (len); j++)
{
if (i==j) matr[i][j]=1;
else matr[i][j]=0;
}
}
}

tagMatrix::tagMatrix(int len)
{

this->len = len;
matr = new int *[len];
for(int i = 0; i < (len); i++)
matr[i] = new int[len+1];
for(i=0;i < (len); i++)
{
for(int j=0;j < (len); j++)

matr[i][j]=i+j;

}
}
tagMatrix::tagMatrix(int len, int num)
{

this->len = len;
matr = new int *[len];
for(int i = 0; i < (len); i++)
matr[i] = new int[len+1];
for( i=0;i < (len); i++)
{
for(int j=0;j < (len); j++)
{
if (i==j) matr[i][j]=num;
else matr[i][j]=0;
}
}
}
tagMatrix::tagMatrix(tagMatrix &o)
{
o.matr = new int *[o.len];
for(int i = 0; i < (o.len); i++)
o.matr[i] = new int[o.len+1];
for(i=0;i < (o.len); i++)
{
for(int j=0;j < (o.len); j++)
o.matr[i][j]=i+j;
}


}


ostream& operator << ( ostream& out,tagMatrix &matrix)
{
for (int i=0;i< matrix.len;i++)
{
for(int j=0; j< matrix.len;j++)
{
out<< matrix.matr[i][j]<<" ";
if (j == (matrix.len-1))
out<< "\n";
}

}
out <<"\n";
return out;
}
tagMatrix tagMatrix::operator +(tagMatrix &t)

{
tagMatrix t1(this->len);//poryadok matrizy
for (int i=0;i< (this->len);i++)
{
for(int j=0; j< (this->len); j++)
{
t1.matr[i][j]=((matr[i][j])+ (t.matr[i][j]));
}

}


return t1;
}



int main()
{
tagMatrix m1;
tagMatrix m2(2);
tagMatrix m3(2,5);
cout << m1;
cout << m2;
cout << m3;

m2+m3;
return 0;
}
</lj-cut>