سلام
من قبلا برای کلاس ماتریس یک تابع سازنده نوشته بودم ولی الان که فکر می کنم می بینم اشتباه بوده است زیرا الان درایه های ماتریس را فقط مقدار صفر می دهد ولی اصلا ماتریسی نیست که مقدار صفر دهد یعنی اصلا در تابع سازنده ماتریس ساخته نمی شود که بخواهد مفدار به آن دهد می خواستم بدونم چگونه این مشکل را برطرف کنم چون باید موقع ساختن یک شی باید سطر و ستون را بگیرد
امیدوارم فهمیده باشید منظورم چی است
#include<iostream>
#include"MATRIX.h"

using namespace std;

/*################################################# ##########################*/
MATRIX:: MATRIX()
{
for (int i=0 ; i<row ; i++)
{
for (int j=0 ;j<column ; j++)
{
MatrixArray[i][j]=0;
}
}
}
/*################################################# ###########################*/
void MATRIX::getMatrix()
{
cout << "please enter number of the matrix row: " ;
cin >> row ;
cout << "please enter number of the matrix column: " ;
cin >> column;

MatrixArray = new int *[row];
for (int i=0 ; i<row ; i++)
{
MatrixArray[i] = new int [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];
}
}
}
/*################################################# ##############################*/
void MATRIX::setMatrix()
{
for(int i=0 ; i<row ; i++)
{
for (int j=0 ; j<column ; j++)
{
cout << MatrixArray[i][j]<< "\t"/*?*/ ;
}
cout << endl;
}
}
/*################################################# ##############################*/
MATRIX MATRIX::operator +(MATRIX mat)
{
MATRIX 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 int *[row];

cout << endl;
cout << "this is the + of two matrixs:" << endl ;
cout << endl;
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new int [column];
}


for (int j=0 ; j<row ; j++)
{
for ( int k=0 ; k<column ; k++)
{
tempMAT.MatrixArray[j][k] = MatrixArray[j][k] + mat.MatrixArray[j][k];
}
}
tempMAT.setMatrix();
return tempMAT;//?
}
/*################################################# #############################*/
MATRIX MATRIX::operator -(MATRIX mat)
{
MATRIX tempMAT;
if ( row != mat.row && column != mat.column)
{
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 = column;
tempMAT.MatrixArray = new int *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new int [column];
}


for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<column ; k++)
{
tempMAT.MatrixArray[j][k] = MatrixArray[j][k] - mat.MatrixArray[j][k];
}
}
tempMAT.setMatrix();
return tempMAT;
}
/*################################################# ###########################*/
MATRIX MATRIX::operator *(MATRIX mat)
{
MATRIX 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 int *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new int [mat.column];
}


for (int j=0 ; j<row ; j++)
{
for (int k=0 ; k<mat.column ; k++)
{
tempMAT.MatrixArray[j][k]=0;//?
for (int l=0 ; l<mat.column ; l++)
{
tempMAT.MatrixArray[j][k] += (MatrixArray[j][l]) * (mat.MatrixArray[l][k]);
}
}
}
tempMAT.setMatrix();
return tempMAT;
}
/*################################################# ###########################*/
MATRIX MATRIX::operator* (int k)
{
MATRIX tempMAT;
tempMAT.row = row;
tempMAT.column = column;
tempMAT.MatrixArray = new int *[row];
for (int i=0 ; i<row ; i++)
{
tempMAT.MatrixArray[i] = new int [column];
}
for (int ii=0 ; ii<row ; ii++)
{
for (int j=0 ; j<column ; j++)
{
tempMAT.MatrixArray[ii][j]=0;
}
}

for (int j=0 ; j<row ; j++)
{
for (int jj=0 ; jj<column ; jj++)
{
tempMAT.MatrixArray[j][jj] = (MatrixArray[j][jj] * k);
}
}
return tempMAT;
}
/*################################################# ########################*/
int* MATRIX::operator[](int num)
{
return MatrixArray[num];
}