Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Supraincarcare operatori  (Citit de 3494 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ellizabeth
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Martie 21, 2017, 15:46:10 »

Hello.Am urmatoarea problema:
Scrieti o clasa Matrix. Elementele sunt de tip intreg.
-        Pentru simplificare se considera matricea patratica
-        Elementele se citesc de la tastatura

Se permit opratiile:
Matrix  a;
Matrix  b;
Matrix c(a);
Matrix d = a;
Matrix e = a + b;

De ce primesc eroare de segmentation fault?Codul este acesta:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<stdio.h>
#include<string.h>

using namespace std;

class matrix
{ private:
  int n;
  int p[3][3];
 
 public:
   
   void citire(int n);
   void afisare();
   
  matrix(int x)
  {n=x;
  };
  matrix(const matrix &obj);
  ~matrix() {}   


matrix operator = (matrix m2);
matrix operator + (matrix m2);
};

matrix::matrix(const matrix &obj)
{ int i,j;
   for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
      p[j]=obj.p[j];
   }
}

void matrix::citire(int n)
 {int i,j;
    for(i=0;i<n;i++)
      { for(j=0;j<n;j++)
         cin>>p[j];
      }
 }
 
 void matrix::afisare()
 {int i,j;
    for(i=0;i<n;i++)
      { for(j=0;j<n;j++)
         cout<<p[j];
      }
 }
 
 matrix matrix::operator + (matrix m2)
 {  int i,j;
    for(i=0;i<n;i++)
    { for(j=0;j<n;j++)
       p[j]=m2.p[j] + p[j];
    }
   
 }
 
matrix matrix::operator = (matrix m2)
 { int i,j;
    for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
      p[j]=m2.p[j];
     }
    return *this;
 }
 
int main()
{
  matrix a(2);
  a.citire(2);
 
  cout<<"-------"<<endl;
  matrix c(a);
  matrix d(2);
  d=a;
  d.afisare();
  ~matrix d;
  ~matrix a;
  }
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines