Titlul: Supraincarcare operatori Scris de: Adriana Maria din 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; } |