перегрузка операции +
У менят в программе в классе нужно с помощью конструктора инициализировать матрицу и огранизовать суммирование 2х матриц с помощью перегрузки. С перегрузкой + какая-то ошибка.
#include
#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>
<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>
