Не могу понять, как убрать ошибку.
In member function `matrica matrica:: operator=(massiv&)':
Expected unqualified-id before '(' token
Помогите пожалуйста.
Код:
#include<iostream>
using namespace std;
class massiv
{ float *a; int stroka; int n;
public: float sum1;
massiv();
void vvod();/*vvod elementov*/
void vivod();
void sum_el();
void vivod_stroka();
~massiv(){delete[]a; puts("rabotal destryktor\n");} /*{puts("rabotal destryktor massiva\n")*/;
};
//==============================================//
massiv::massiv()
{printf("\nvvedite razmer massiva n: ");
scanf("%d",&n);
puts("\nrabotal konstruktor massiva\n");
}
//==============================================//
void massiv::vvod()/*vvod elementov*/
{a = new float[n];
for( int i = 0; i < n; i++ )
{ *( a + i ) = rand() % 101 - 50;printf("%3.2f ", *(a+i));
}/*ot -50 do 50 ili rand() % 201 - 100 ot -100 do 100 */
}
//==============================================//
void massiv::sum_el()
{sum1 = 0;/*snachala summa v stroke=0*/
for( int i = 0; i < n; i++ )/*idem po strokam*/
{sum1 += *( a + i );}/*summiruyem yeye elementy*/
}
//==============================================//
void massiv::vivod_stroka()
{printf("\nsumma elementov massiva= %3.2f",sum1); printf("\n");}
//========================================//==============================================//======//
class matrica
{ float *x; int n,m;
public:
float sum2; int stroka; float *b;int kol_str;
matrica();
void vvod();
void vivod();
void sum_el();
void vivod_stroka();
matrica operator-(massiv &mas);
matrica operator=(massiv &mas);
void reshenie();
~matrica(){delete[]x; puts("rabotal destryktor matrici\n");}
};
//==============================================//
matrica::matrica()
{printf("\nvvedite razmernost n*m: ");
scanf("%d %d",&n,&m);
puts("\nrabotal konstruktor matrici\n");
}
//==============================================//
void matrica:: vvod()
{
x = new float [n * m];
for( int i = 0; i < n; i++ )
for( int j = 0; j < m; j++ )
*( x + i * m + j ) = rand() % 101 - 50;
}
//==============================================//
void matrica::vivod()/*vivodit matrici na ekran*/
{printf("\nmatrica:\n");
for(int i = 0; i < n; i++)
{for(int j = 0; j < m;j++)
cout<<*(x + i * m + j)<< " ";cout << "\n";}
}
//==============================================//
void matrica::sum_el()
{ kol_str = 0;
for(int i = 0; i < n; i++)/*idem po strokam*/
{sum2 = 0;/*snachala summa v stroke=0*/
for(int j = 0; j < m; j++)/*idem po stroke*/
sum2 += *( x + i * m + j );/*summiruyem ee elementy*/
stroka = i + 1;
kol_str++;
printf("\nsumma= %3.2f v stroke %d ",sum2, stroka); }printf("\n");
printf("koli4estvo strok novoj matrici = %d",kol_str);printf("\n");
}
/*----------------------------------------------------------------*/
matrica matrica::operator-(massiv &p)
{
matrica rez;
printf("Rabotaet minus\n");
rez.x = new float [kol_str * m];/*Videlim pamjat' dlja rezyltiryjywej matrici*/
if (sum2 < p.sum1) /*esli summi strok po matrice men'we summi massiva*/
{for (int i = 0; i < kol_str; i++) /*zapiwem stroki v rezyltiryjywyjy matricy*/
for (int j = 0; j < m; j++)
rez.x = (x + i * m + j);
}
return rez;
}
/*----------------------------------------------------------------*/
matrica matrica::operator=(massiv &p)
{
matrica rez; puts("\n rez dla = ");
for (int i = 0; i < kol_str; i++) /*zapiwem stroki v rezyltiryjywyjy matricy*/
for (int j = 0; j < m; j++)
*(x + i * m + j) = p.(x + i * m + j);
return * this;
}
/*----------------------------------------------------------------*/
void matrica::reshenie()/*vivod rezyltiryjywej matrici na ekran*/
{for (int i = 0; i < n; i++)
{cout<<"\n" ;
for (int j = 0; j < m; j++)
cout<< *(x + i * m + j) <<" ";
}
}
/*----------------------------------------------------------------*/
int main()
{
massiv V;
V.vvod();
V.sum_el();
V.vivod_stroka();
system("pause");
matrica A;
A.vvod();
A.vivod();
A.sum_el();
/*matrica rez = A - V;
rez.reshenie(); */
matrica M;
M = A - V;
M.reshenie();
printf("\n");
system("pause");
}