class MatrixClass
{
private:
int **Matrix;
int SizeM;
public:
MatrixClass(int);
MatrixClass(){};
~MatrixClass();
int GetSize();
void PrintMatrix();
friend MatrixClass* operator+ (MatrixClass A, MatrixClass B);
friend MatrixClass* operator- (MatrixClass A, MatrixClass B);
// friend MatrixClass* operator* (MatrixClass A, MatrixClass B);
// friend MatrixClass* operator/ (MatrixClass A, MatrixClass B);
}
MatrixClass::MatrixClass(int SizeM)
{
this->SizeM = SizeM;
Matrix = new int *[SizeM];
for(int i = 0; i < SizeM; i++)
{
Matrix[i] = new int [SizeM];
for(int j = 0; j < SizeM; j++)
Matrix[i][j] = rand() % 5;
}
}
MatrixClass::~MatrixClass()
{
for(int i = 0; i < SizeM; i++)
{
delete [](Matrix[i]);
}
delete [](Matrix);
}
int MatrixClass::GetSize(){return SizeM;}
void MatrixClass::PrintMatrix()
{
for(int i = 0; i < SizeM; i++){
cout << "\t| ";
for(int j = 0; j < SizeM; j++)
cout << Matrix[i][j] << " ";
cout << "|" << endl;
}
};
MatrixClass* operator+ (MatrixClass A, MatrixClass B)
{
MatrixClass* C = new MatrixClass(A.GetSize());
for(int i = 0; i < A.GetSize(); i++){
for(int j = 0; j < A.GetSize(); j++){
C->Matrix[i][j] = A.Matrix[i][j] + B.Matrix[i][j];
}
}
return C;
}
MatrixClass* operator- (MatrixClass A, MatrixClass B)
{
MatrixClass* C = new MatrixClass(A.GetSize());
for(int i = 0; i < A.GetSize(); i++){
for(int j = 0; j < A.GetSize(); j++){
C->Matrix[i][j] = A.Matrix[i][j] - B.Matrix[i][j];
}
}
return C;
}
void main()
{
clrscr();
// 4, 10
MatrixClass A(3), B(3), *C;
cout<<"A: "<<endl; A.PrintMatrix(); getch();
cout<<"B: "<<endl; B.PrintMatrix(); getch();
C = A + B;
cout<<"A + B: "<<endl;
C->PrintMatrix(); getch();
cout<<"A: "<<endl; A.PrintMatrix(); getch();
cout<<"B: "<<endl; B.PrintMatrix(); getch();
C = A - B;
cout<<"A - B: "<<endl;
C->PrintMatrix(); getch();
// C = A * B;
// cout<<"Overload C = A + B: ";
// C.PrintMatrix(); getch();
// C = A / B;
// cout<<"Overload C = A - B: ";
// C.PrintMatrix(); getch();
}
Есть такой код, я не понимаю почему сбиваются массивы А и B, хотя я их даже не изменяю. Изменяются 2 первые строчки массива А и B. Подскажите в чем проблема