jannatmakan
شنبه 09 اردیبهشت 1391, 07:32 صبح
با عرض سلام.
قراره ماتریس ها رو به صورت شی تعریف کنم و عملگرها و برای مثلاً جمع دو ماتریس سربارگذاری کنم.
می دونیم که برای جمع دو ماتریس باید عناصر ماتریس، نظیر به نظیر باهم جمع بشن.
این کلاسیه که نوشتم.
class matrix
{
public:
matrix operator+(matrix op2);
matrix operator-(matrix op2);
matrix();
~matrix();
void create(int,int);
void getvalues();
void showvalues();
private:
int created;
int *value;
int rowss;
int columns;
};
اینم متد create
void matrix::create(int rows,int cols)
{
value=new int [rows,cols];
created=1;//for ~matrix::matrix()
columns=cols;
rowss=rows;
}
توضیحات:
تابع create کارش ایجاد یک ماتریس n*m هست. و تابع getvalues هم عناصر ماتریس رو می گیره.
خوب حالا که میزان سطر و ستون ماتریسی که می خوام جمع بزنم مشخص نیست و به عبارتی پویاست، مجبورم از حلقه ی for متداخل در تابع operator استفاده کنم. اما کارش رو درست انجام نمی ده. از شما دوستان کسی هست که بتونه کمک کنه؟ ممنون . اینم از تابع +operator
بقیه خطوط هم برای کنترله. لطفاً فقط بگید چرا تابع operator مقادیر شیِ result رو درست مقداردهی نمی کنه؟
matrix matrix::operator+(matrix op2)
{
matrix result;
result.create(op2.rowss,op2.columns);
if(op2.rowss==rowss && op2.columns==columns)
{
for(int i=0;i<rowss;i++)
{
for(int j=0;j<columns;j++)
{
result.value[i,j]=op2.value[i,j]+value[i,j];
}
}
}
else
{
cout<<"Error: Both of matrixs's must be TANTAMOUNT.\n";
}
return result;
}
قراره ماتریس ها رو به صورت شی تعریف کنم و عملگرها و برای مثلاً جمع دو ماتریس سربارگذاری کنم.
می دونیم که برای جمع دو ماتریس باید عناصر ماتریس، نظیر به نظیر باهم جمع بشن.
این کلاسیه که نوشتم.
class matrix
{
public:
matrix operator+(matrix op2);
matrix operator-(matrix op2);
matrix();
~matrix();
void create(int,int);
void getvalues();
void showvalues();
private:
int created;
int *value;
int rowss;
int columns;
};
اینم متد create
void matrix::create(int rows,int cols)
{
value=new int [rows,cols];
created=1;//for ~matrix::matrix()
columns=cols;
rowss=rows;
}
توضیحات:
تابع create کارش ایجاد یک ماتریس n*m هست. و تابع getvalues هم عناصر ماتریس رو می گیره.
خوب حالا که میزان سطر و ستون ماتریسی که می خوام جمع بزنم مشخص نیست و به عبارتی پویاست، مجبورم از حلقه ی for متداخل در تابع operator استفاده کنم. اما کارش رو درست انجام نمی ده. از شما دوستان کسی هست که بتونه کمک کنه؟ ممنون . اینم از تابع +operator
بقیه خطوط هم برای کنترله. لطفاً فقط بگید چرا تابع operator مقادیر شیِ result رو درست مقداردهی نمی کنه؟
matrix matrix::operator+(matrix op2)
{
matrix result;
result.create(op2.rowss,op2.columns);
if(op2.rowss==rowss && op2.columns==columns)
{
for(int i=0;i<rowss;i++)
{
for(int j=0;j<columns;j++)
{
result.value[i,j]=op2.value[i,j]+value[i,j];
}
}
}
else
{
cout<<"Error: Both of matrixs's must be TANTAMOUNT.\n";
}
return result;
}