سلام من این یه خطا رو هر کاری میکنم درست نمیشه فردا 8 صبح هم باید تحویل بدم اینو میشه اگه کسی هست اینجا کمک کنه ؟

میدونم جای این سوال توی این تالار نبود ولی واقعا کارم گیره دارم به هر دری میزنم اگه دوستی کسی دارید ++c کاره که الان آنلاینه ممنون میشم ازش کمک بگیرید


سوال: آرايه ي يک بعدي پويا با استفاده از کلاس تعريف نموده به گونه اي که شامل سازنده معمولي ، سازنده ي کپي ، == ، = ، =+ ، * باشد

کد:
 #include<iostream.h>

class matrix{

         friend matrix operator *(matrix &r,matrix &r2);
         friend int operator ==(matrix &r,matrix &r2);
   public :
      matrix (int a=5) {
               size=a;
               arr=new int[size];
      }
      void setsize(int s){size=s;}
      int getsize(){return size;}
      void st() {
           cout<<"plz enter numbers: \n";
           for(int i=0;i<size;i++)
           { cout<<i+1<<": \t";cin>>arr[i];}   
           }
      matrix operator ++(){
           for(int i=0;i<size;i++)
             arr[i]++;
             return *this;
      }
      matrix  operator  ++(int){
               matrix temp(size);
               temp=*this;
               for(int i=0;i<size;i++)
                   arr[i]++;
                   return temp;
      }
      matrix  operator =(const matrix &r){
              size=r.size;
              for(int i=0;i<size;i++)
                  arr[i]=r.arr[i];
                  return *this;
      }
      matrix & operator  +=(const matrix & r){                 
              for(int i=0;i<size;i++)
              arr[i]=arr[i]+r.arr[i];
              return *this;
      }
   void show_arr(){
         cout<<" view inserted numbers in matrix: \n";
     for(int i=0;i<size;i++)
       {cout<<arr[i]<<" ";}
   }
  private :
      int size;
      int * arr;
};

matrix mat1,mat2,mat3;
bool cr_obj(){
    int obj_n,n;
    cout<<"Select Object you want to create ( 1 || 2 || 3 ): \n";
    cin>>obj_n;
    if(obj_n<1 || obj_n>3)return false;
    cout<<"select size for matrix: \n";  
    cin>>n;
    switch (obj_n){
       case 1:mat1.setsize(n);
          break;
       case 2:mat2.setsize(n);
          break;
       case 3:mat3.setsize(n);
          break; 
    }
}
void lod_menu(){
     cout<<"\n\t   Matrix Class \n ";
     cout<<"\n";
     cout<<"0.\t"<<"* set size of a matrix"<<endl;       
     cout<<"1.\t"<<"* set values for a matrix"<<endl;
     cout<<"2.\t"<<"* show values of a matrix"<<endl;
     cout<<"3.\t"<<"* compare two matrixes "<<endl;
     cout<<"4.\t"<<"* beat two matrixes "<<endl;
     cout<<"5.\t"<<"* sum two matrixes "<<endl; 
     cout<<"6.\t"<<"* ++  matrixes "<<endl;
     cout<<"7.\t"<<"* End "<<endl;       
     cout<<"\n"; 
}
void compair(){
     int n;
     cout<<"select matrix to compare(1,2 || 2,3 || 1,3)";
     cin>>n;
     if(n==1)
        if((mat1==mat2)==1)cout<<" matris 1 == matrix 2 \n";
           else cout<<" matris 1 != matrix 2 \n";
        else if(n==2)
           if((mat2==mat3)==1)cout<<" matris 2 ==matrix 3 \n";
           else cout<<" matris 2 != matrix 3 \n";
        else
           if((mat1==mat3)==1)cout<<" matris 1 ==matrix 3 \n";
           else cout<<" matris 1 != matrix 3 \n";
}
void ad(){
    int n;
    cout<<"select matrix to  add(1 || 2)";
    cin>>n;
    if(n==1)
       mat3+=mat1;
    else
       mat3+=mat2;
}
bool show(){
        int mat;
        cout<<"select 1 || 2 || 3 ? \n";
        cin>>mat;
        if(mat<1 || mat>3)return false;
        switch (mat ){
            case 1:mat1.show_arr();
                break;
            case 2:mat2.show_arr();
                break;
            case 3:mat3.show_arr();
                break;
            default:cout<<"wrong number!\n";
                break;                                 
        }              
} 
void star(){
    cout<<" mat3=mat1*mat2 \n";
    mat3=mat1*mat2;
}
bool st_values(){
    int mat;
    cout<<"select 1 || 2 || 3 ? \n";
    cin>>mat;
    if(mat<1 || mat>3)return false;
    switch (mat ){ 
        case 1:mat1.st();
              break;
        case 2:mat2.st();
              break;
        case 3:mat3.st();
              break;                       
        default:cout<<"wrong number!\n";
              break;                                 
    }
}
void plus(){
     int n;
     cout<<"select matrix to compare( 1 || 2 || 3 )";
     cin>>n;
     if(n==1)
        mat1++;
     else if(n==2)
        mat2++;
     else
        mat3++;
}

/////////////////////////////////////

int main(){
   int selectuser=0;
   int x; 
   while(1){
      lod_menu();
      cin>>selectuser;  
      if(selectuser<0 || selectuser>6)exit(0);
      switch (selectuser){
         case 0:cr_obj();
             break;
         case 1:st_values();
             break;
         case 3:compair();
             break;
         case 2:show();
             break;             
         case 4:star();
             break;
         case 5:ad();
             break;   
         case 6:plus();
             break;                   
         default: exit(0);         
      }
   }
   return 0;
}

//////////////////////////////////////////////


   matrix operator *( matrix &r,matrix &r2){          
          int min=r.size;
          if(r2.size<r.size)min=r2.size;
          matrix z(min);
          for(int i=0;i<min;i++)
              z.arr[i]=r.arr[i]*r2.arr[i];
          return z;
   }       
   int operator ==(matrix r1,matrix r2){           
           if(r1.size != r2.size)return 0;
           for(int i=0;i<r1.size;i++)
           if(r1.arr[i]!=r2.arr[i])return 0;
           return 1;   
   }