Witam!
Mam taki problem, że podczas pisania programu do podstawowych operacji na macierzach, przeciążony operator nie zwraca mi poprawnie wskaźnika, ale może przejdźmy do kodu:
macierz* operator + (macierz a, int b)
{
for (int i =0;i<a.x;i++)
{
for (int j = 0;j<a.y;j++)
{
a.matrix[i][j]+=b;
}
}
macierz * temp = &a;
temp->drukuj();
return temp;
}
wskaźnik temp i jego metoda drukuj są po to aby sprawdzić, czy na tym etapie wszystko jest ok i tak właśnie jest, ale po wprowadzeniu w funkcji main danego ciągu instrukcji:
macierz* A = new macierz(a,b);
macierz* C ;
C = operator +(*A,l);
C->drukuj();
nic się nie wyświetla. Zawartość tablicy matrix się nie przekazuje. o dziwo rozmiary macierzy się zgadzają (a,b) , jednak po postawieniu breakpointa odczytałem, że matrix w macierzy C:
CXX0017: Error: symbol "temp" not found
Co jest grane? Nie mam pojęcia. Pełen kod jest dostępny pod adresem:
http://pastebin.com/GtyUT20M
Proszę o jak najszybszą pomoc!
PS. Adresy w pamięci temp i C się zgadzają.