salut,am o bucățică de program ce nu mi afișează un obiect construit prin supraîncărcarea cu + a altor doua obiecte ,unul dintre membri clasei este o matrice alocată dinamic
aici e header-ul
#pragma once
class matrice
{private:
int nrlinie;
int nrcoloana;
int **mat2;
public:
matrice();
matrice(matrice&);
matrice operator+( matrice&);
~matrice();
void afisare();
};
respectiv functii.c
#include <iostream>
#include "Header.h"
using namespace std;
matrice::matrice()
{
cin >> nrlinie;
cin >> nrcoloana;
mat2=new int*[nrlinie];
for (int i = 0; i<nrlinie; i++)
mat2[i] = new int[nrcoloana];
for (int i = 0; i < nrlinie; i++)
for (int j = 0; j < nrcoloana; j++)
cin>>mat2[i][j];
}
matrice::~matrice()
{
for (int i = 0; i < nrlinie; ++i)
delete[] mat2[i];
delete[] mat2;
}
void matrice::afisare()
{
for (int i = 0; i < nrlinie; i++)
for (int j = 0; j < nrcoloana; j++)
cout << mat2[i][j] << " ";
cout << endl;
}
matrice matrice::operator+( matrice &a)
{
matrice r;
r.nrcoloana = nrcoloana;
r.nrlinie = nrlinie;
for (int i = 0; i < r.nrlinie; i++)
for (int j = 0; j < r.nrcoloana; j++)
{
r.mat2[i][j] = mat2[i][j] + a.mat2[i][j];
}
return r;
}
si main
#include <iostream>
#include "Header.h"
using namespace std;
int main()
{
matrice a;
matrice b;
matrice c;
c = a.operator+(b);//incercat si c=a+b;
c.afisare();
return 0;
}
ideea e ca nu-mi afișează nimic,ce trebuie modificat la codul meu?respectiv ce ar trebui adaugat?